我有一张person
表。 person
可能有多个kids
,也是人。
因此,人员表之间存在一对多的关系。
我希望得到所有至少有一个儿子(sex=male)
的人。我按照以下标准这样做:
List personsWithSon = sess.createCriteria(Person.class)
.createAlias("kids", "k")
.add( Restrictions.eq("k.sex", "male") )
.list();
只要只有一个儿子,这很好。如果有例如三个儿子,这个人三次返回。但我只需要一次这个人。我怎样才能对结果做出明确的分析?
答案 0 :(得分:5)
将其更改为:
List personsWithSon = sess.createCriteria(Person.class).createAlias("kids", "k").add(Restrictions.eq("k.sex", "male")).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();