Hibernate Criteria列表

时间:2012-06-26 07:59:20

标签: java hibernate criteria contains

美好的一天,

我有一个看起来像这样的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;
      ...
}

我如何进行查询以使所有物品持有者的女巫包含我的物品? (有标准)

3 个答案:

答案 0 :(得分:8)

您只需要加入:

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

答案 1 :(得分:2)

Criteria criteria=session.createCriteria(ItemHolder.class);
criteria.createAlias("items", "item"); 
criteria.add(Restrictions.eq("item.Name", "my Item").ignoreCase());

你可以限制你的要求:id或name ..

答案 2 :(得分:1)

查询可能类似于:

Item loadedItem = ...;
Query query = session.createQuery("from ItemHolder ih where :item in elements(ih.items)");
query.setParameter("item", loadedItem);
List list = query.list();