Get record with max id, using Hibernate Criteria
You can use a DetachedCriteria to express a subquery, something like this: DetachedCriteria maxId = DetachedCriteria.forClass(Foo.class) .setProjection( Projections.max(“id”) ); session.createCriteria(Foo.class) .add( Property.forName(“id”).eq(maxId) ) .list(); References Hibernate Core Reference Guide 15.8. Detached queries and subqueries