2011-01-21 84 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();