我有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();
我没有收到有序的球员名单。
答案 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
}