Hibernate标准:如何按两列排序并获得最早的更改值?

时间:2015-10-19 10:53:33

标签: java hibernate criteria

我有一个带有modifiedDate(datetime)和createdDate(datetime)列的数据库实体(医院),我的要求是它应该位于获取列表顶部的最早值。以下是我尝试的代码:

Criteria criteria = session().createCriteria(Hospital.class);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.addOrder(Order.desc("createdDate"));
criteria.addOrder(Order.desc("modifiedDate"));

List<Hospital> hospitals = criteria.list();

修改: 例如,我今天,昨天和前天创建了3家医院,现在当我拿到清单时,它应该按照这个顺序给我医院订购的医院:

    今天
  1. H
  2. H昨天
  3. H-day-before-today
  4. 现在当我修改了 - &gt;(H昨天)并再次获取列表时,订单应为:

    1. H昨天(今天修改)
    2. 今天
    3. H
    4. H前天
    5. 希望这能消除疑虑,如果不是,我会尝试重新构建它。

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下你需要使用Order.asc。如果您将使用Order.desc,那么当最新的(最大值)位于Top时,您将遇到这种情况。