我想使用Hibernate的 Criteria API,选择表中具有给定列最大值的记录。
我试图用投影,创造一个别名为max(colunName),然后使用它restrictions.eq(),但它不断告诉我“ 无效号码 ”。
max(colunName)
restrictions.eq()
用Hibernate做到这一点的正确方法是什么?
您可以使用DetachedCriteria来表示子查询,如下所示:
DetachedCriteria
DetachedCriteria maxId = DetachedCriteria.forClass(Foo.class) .setProjection( Projections.max("id") ); session.createCriteria(Foo.class) .add( Property.forName("id").eq(maxId) ) .list();