具有集合的对象的Hibernate查询

时间:2011-01-21 16:38:15

标签: hibernate

对于如下结构:

class Person
{
   Integer personID;
   String personName
   List<Pet> pets;
}

class Pet
{
  String petID;
  Integer personID;
  String petName;
  Integer petNum;
}

以上内容存储在数据库中,如下所示:

person_ID  person Name 
1            Peter
2            Buch
3            POLR

pet_id  person id petName petNum
1         1        "AAA"    3
2         1        "BBB"    3
3         1        "CCC"    4

我希望能够根据人名和他拥有的宠物搜索人员。因此,Hibernate查询的输入可能如下:

person name = Peter
petName = "AAA"
petNum = 3
petName = "BBB"
petNum = 4

所以在上述情况下,它不应该返回任何结果,因为serach没有指定彼得有的另一只宠物。

是使用HQLnate的HQL或Criteria API进行的搜索吗?

谢谢, Nishanth

1 个答案:

答案 0 :(得分:0)

我相信这种搜索是可能的。

使用Criteria API尝试这样的事情:

 getSession().createCriteria(Person.class)
    .addRestriction(Restrictions.eq("name", personName)
    .createAlias("pets","pets")
    .addRestriction(Restrictions.eq("pets.name", petName))
    .list();