对于如下结构:
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
答案 0 :(得分:0)
我相信这种搜索是可能的。
使用Criteria API尝试这样的事情:
getSession().createCriteria(Person.class)
.addRestriction(Restrictions.eq("name", personName)
.createAlias("pets","pets")
.addRestriction(Restrictions.eq("pets.name", petName))
.list();