
How to get distinct results in hibernate with joins and row-based limiting (paging)
By: a guest on
Feb 28th, 2012 | syntax:
None | size: 0.51 KB | hits: 16 | expires: Never
criteria.setProjection(Projections.distinct(Projections.property("id")));
criteria.setProjection(Projections.distinct(Projections.id()));
DetachedCriteria idsOnlyCriteria = DetachedCriteria.forClass(MyClass.class);
//add other joins and query params here
idsOnlyCriteria.setProjection(Projections.distinct(Projections.id()));
Criteria criteria = getSession().createCriteria(myClass);
criteria.add(Subqueries.propertyIn("id", idsOnlyCriteria));
criteria.setFirstResult(0).setMaxResults(50);
return criteria.list();