要返回有序的criteria.list()

时间:2014-09-03 11:36:06

标签: java hibernate

我有PlayerEntity hibernate实体对应表

  id       date       amount
serial   timestamp    integer

假设我有List<Date> lst。我需要执行返回所有PlayerEntity元素的查询,这些元素位于lst并按lst的顺序排序。我的意思是,criteria.list()返回的第一个元素应该是一个与lst.get(0)日期相对应的元素,第二个元素应该与lst.get(1)日期相对应,等等。如果我只是写

criteria.add(restriction.in("date", lst));
List<PlayerEntity> players = criteria.list();

我没有收到有序的球员名单。

3 个答案:

答案 0 :(得分:1)

我不知道这是否有“好”的方法。我认为你需要迭代'lst',找到'玩家'中的匹配并在你去的时候建立一个新的列表。

我有点困惑 - 是PlayerEntity表中的'date'吗?如果是这样,你可以这样做:

criteria.add(Order.desc("date"));

答案 1 :(得分:0)

如果条件列表包含按升序或降序排列的日期,则排序很简单:

criteria.addOrder(Order.asc("timestamp")) // or Order.desc

否则,您需要对应用程序中的项目进行排序。

答案 2 :(得分:0)

使用此代码:

Criteria criteria = session.createCriteria(PlayerEntity.class);
criteria.setOrder(Order.DESC("date"));
List<Player> players = criteria.list();
for(Player player : players){
    // process the logic
}