如何从项目列表中检索所选项目?

时间:2014-03-30 22:56:48

标签: java hibernate hibernate-mapping

在我的应用程序中,用户可以选择几个项目并查看所有项目的详细信息。 我知道我可以使用Criteria并使用它的Restrictions.disjunction(),我可以定义 " OR&#34 ;;但是,我需要从列表中检索所选项的ID,这使得难以使用条件创建查询。

Criteria cre = session.createCriteria(Category.class,"category");
cre.add(Restrictions.disjunction()) //?????
for(int i=0;i<selection.size();i++){
   cre.add(Restrictions.eq("category.items",selection.get(i)); 
}
....


@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@LazyCollection(LazyCollectionOption.FALSE)
public List<CategoryItem> getItems() {
    return this.items;
}

另一种方法是发送单独的查询,我认为这是一种低效的方法。

1 个答案:

答案 0 :(得分:1)

正如Ean所提到的,只需使用以下内容:

from Category c join c.items i where i.id in :yourList