对象内的Hibernate查询列表

时间:2013-04-23 12:15:07

标签: java hibernate list mapping one-to-many

我有一个班级

public class Human{

  @OneToMany
  private List<Pets> myPets;
  //other fields here.
}

是否有可能查询人类并获得拥有最多宠物的人类?可以Hibernate / HQL这样做,还是我必须手动获取所有人类并查询它们包含的宠物列表?如果是这样的话?

1 个答案:

答案 0 :(得分:2)

HQL允许您按如下方式查询列表的大小:

select max(h.myPets.size) from Human h

因此,您可以将此作为内部语句来查找pet.size等于max的人类对象:

from Human h where h.myPets.size = (select max(h2.myPets.size) from Human h2)