java 列表的休眠条件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11203034/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 04:13:13  来源:igfitidea点击:

Hibernate Criteria for list

javahibernatecriteriacontains

提问by Konstantin

Good Day,

再会,

I have a Hibernate mapping that looks something like this:

我有一个 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;
      ...
}

How can I do query to get all Item Holder's witch contains my Item? (with criteria)

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

回答by JB Nizet

You just need a join:

你只需要加入:

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

回答by Karesh A

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

you can restrict with your requirement : id or name..

您可以根据您的要求进行限制:id 或 name..

回答by Francisco Spaeth

The query could be something like:

查询可能类似于:

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