有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

排序Java静态列表在一段时间后失去了顺序

我的Util.java类中有一个静态列表:

...
private static List<MyEntity> mainList = new LinkedList<MyEntity>();
...
static {    
    fillMainList();
}
...
public static List<MyEntity> fillMainList() {

    org.hibernate.Session session = HibernateUtil.getSessionFactory().openSession();
    try{
        setMainList(new MyEntityDAO(session).findMyEntities());
    }
    finally{
        session.close();            
    }

    return getMainList();
}
...

MyEntityDao。爪哇:

...
@SuppressWarnings("unchecked")
public List<MyEntity> findMyEntities(){
    Criteria criteria = getSession().createCriteria(MyEntity.class);        
    criteria.addOrder(Order.desc("participants") );
    criteria.setMaxResults(5);      
    List<MyEntity> MyEntitys = (List<MyEntity>) criteria.list();
    List<MyEntity> ordered = new LinkedList<MyEntity>();
    ordered.addAll(MyEntitys);
    return ordered;
}
...

这里是MyJSFBean.java,在这里我设置了primeFaces数据表将交互的列表:

...
public List<MyEntity> getMainList() {
    if(mainList == null){
        mainList = Util.getMainList();
    }
    return mainList ;
}
...

我在启动应用程序时(在Util.java类的静态块中)调用方法fillMainList(),然后每隔12小时(使用调度程序)更新列表

每次用户进入JSF页面时,其支持bean都会从Util.java类中获得这个列表

好的,当我启动我的应用程序时,我可以看到PrimeFaces数据表中的列表,其顺序与我使用Hibernate条件查询的顺序相同。但大约10分钟后,当我再次进入页面时,列表被随机排序。。。静态列表失去了它的排序。。。这是怎么可能的,我甚至用LinkedList试图维护排序,但没有成功

谢谢


共 (0) 个答案