2011-01-21 47 views
1

对于结构对象如下:的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 

因此,在上述情况下,不应该因为检索算法没有指定彼得有其他宠物回到返回任何结果。

是这样一个搜索,这可能与HQL或Criteria API的Hibernate?

感谢, Nishanth

+1

从“Hibernate Search的”更改措辞,因为这是指蠕虫的一个整体的其他CAN(http://www.hibernate.org/subprojects/search的.html) – skaffman 2011-01-21 16:48:15

回答

0

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

与标准API尝试这样的事:

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