2013-03-29 41 views
1

我想達到上述要求。匹配hibernate查詢中限制列表中的所有內容

我有一個像

public class Test{private String id;private List<Items> items;} 

項目類的類象

public class Item{private String name; private String state;} 

我想查詢所有項目的狀態在一個特定的限制組。

比方說。

有喜歡的狀態{完成,完成需要確認,拒絕}

,我想有一個查詢中的所有項目的狀態{完成,完成需要確認}組。

如果有一個項目的狀態不處於上述狀態,則不應給出查詢的結果。

我檢查這種事情。我想知道我是否正確地做到這一點或做到這一點。

criteria.add(Restrictions.in("item.state", states));

回答

2

使用標準像你這樣的嘗試:

criteria.add(Restrictions.in("item.state", states)); 

會給你以下錯誤

org.hibernate.QueryException: could not resolve property: item of: Test 

這是因爲你沒有在 「項目」 屬性你的測試類。

要使其工作,你需要爲你的項目創建別名並在限制使用它:爲reply.But

Criteria crit = hibSession.createCriteria(Test.class); 
crit.createAlias("items", "item_"); 
crit.add(Restrictions.in("item_.state", states)); 
+0

由於將這隻返回的測試對象,在限制所有國家。我猜不行。這將返回Test對象在測試狀態中的任一狀態中的限制狀態。我想要查詢哪個返回Test對象時,每個Test對象中的所有狀態在限制組中。謝謝! – harsha89

相關問題