使用 Hibernate的Criteria API ,我想在给定列的最大值的表中选择记录。
我尝试使用 Projections , creating an alias对于 max(colunName)
,然后在 restrictions.eq()
中使用它,但它一直告诉我“invalid number”。
使用 Hibernate 的正确方法是什么?
最佳答案
您可以使用 DetachedCriteria
来表达子查询,如下所示:
DetachedCriteria maxId = DetachedCriteria.forClass(Foo.class)
.setProjection( Projections.max("id") );
session.createCriteria(Foo.class)
.add( Property.forName("id").eq(maxId) )
.list();
引用文献
- Hibernate 核心引用指南
关于java - 使用 Hibernate Criteria 获取具有最大 id 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900105/