一尘不染

使用休眠条件获取最大ID的记录

hibernate

我想使用HibernateCriteria
API
,选择表中具有给定列最大值的记录。

我试图用投影创造一个别名max(colunName),然后使用它restrictions.eq(),但它不断告诉我“
无效号码 ”。

用Hibernate做到这一点的正确方法是什么?


阅读 231

收藏
2020-06-20

共1个答案

一尘不染

您可以使用DetachedCriteria来表示子查询,如下所示:

DetachedCriteria maxId = DetachedCriteria.forClass(Foo.class)
    .setProjection( Projections.max("id") );
session.createCriteria(Foo.class)
    .add( Property.forName("id").eq(maxId) )
    .list();

参考文献

2020-06-20