如何使用Criteria在一个属性的基础上获取唯一记录

时间:2013-02-20 11:57:25

标签: java hibernate

我想要使用Criteria基于单个属性值的唯一记录,请告诉我这样做的方法是什么。

2 个答案:

答案 0 :(得分:0)

使用它:

            criteria.setProjection(Projections.distinct(Projections.property("yourProperty")));
            List result = criteria.list();

或者,如果你想要整行,你可以使用detachedCriteria:

            DetachedCriteria dt = DetachedCriteria.forClass(yourClass.class);
            dt.setProjection(Projections.distinct(Projections.property("yourProperty")));

            criteria.add(Subqueries.propertyIn("yourProperty", dt));
            criteria.list();

答案 1 :(得分:0)

Criteria c = session.createCriteria(Pojo.class);
criteria.setProjection(Projections.distinct(Projections.property("property")));
List list = criteria.list();