我需要编写一个条件查询来选择具有最大日期的行:
Criteria criteria;
//getting criteria
criteria.add(Restrictions.sqlRestriction("{alias}.date = (__QUERY_FOR_MAX_DATE__)"));
是否可以避免写入sqlRestriction,并仅使用Criteria查询来执行此操作?
我的意思是应用一些预测,或者类似的东西......不用写expql限制。
答案 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));