选择最大日期为休眠的行

时间:2015-06-02 06:30:01

标签: java hibernate

我需要编写一个条件查询来选择具有最大日期的行:

Criteria criteria;

//getting criteria

criteria.add(Restrictions.sqlRestriction("{alias}.date = (__QUERY_FOR_MAX_DATE__)"));

是否可以避免写入sqlRestriction,并仅使用Criteria查询来执行此操作?

我的意思是应用一些预测,或者类似的东西......不用写expql限制。

1 个答案:

答案 0 :(得分:2)

DetachedCriteria innerCriteria = DetachedCriteria.forClass(ClassName.class, "inner")
                                  .setProjection(Projections.projectionList().add(Projections.max("inner.dateColumnName")));

Criteria crit = session.createCriteria(ClassName.class, "outer");
crit.add(Subqueries.propertyEq("outer.dateColumnName", innerCriteria));