2012-06-26 62 views
3

美好的一天,Hibernate的標準列表

我有一個Hibernate映射,看起來是這樣的:

public class Item implements Serializable { 
     private lond id; 
     private String Name; 
     private boolean status; 
     ... 

} 

public class ItemHolder implements Serializable { 
     private long id; 
     private List<Item> items; 
     ... 
} 

我怎會查詢來獲取所有項目支座的巫婆包含我的項目? (與標準)

回答

7

你只需要一個連接:

Criteria c = session.createCriteria(ItemHolder.class, "itemHolder"); 
c.createAlias("itemHolder.items", "item"); 
c.add(Restrictions.eq("item.id", theItemId); 
+0

這是可以的,但如果物品條件匹配多次,則可以回答重複的ItemHolders。例如 - 如果通過通配符名稱搜索項目。 –

1

查詢可能是這樣的:

Item loadedItem = ...; 
Query query = session.createQuery("from ItemHolder ih where :item in elements(ih.items)"); 
query.setParameter("item", loadedItem); 
List list = query.list(); 
2
Criteria criteria=session.createCriteria(ItemHolder.class); 
criteria.createAlias("items", "item"); 
criteria.add(Restrictions.eq("item.Name", "my Item").ignoreCase()); 

你可以與你的要求限制:ID或名稱。