2012-06-26 64 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或名称。