匹配hibernate查询中限制列表的所有内容

时间:2013-03-29 13:36:55

标签: java hibernate

我想达到上述要求。

我有一个像

这样的课程
public class Test{private String id;private List<Items> items;} 

项目类如

public class Item{private String name; private String state;}

我想查询特定限制组中所有项目的状态。

让我们说吧。

有些州有{完成,完成需要确认,拒绝}

我希望在{完成,完成需要确认}组中查询所有项目的状态。

如果某个项目的状态不在上述状态,则不应该作为查询的结果。

我检查这种事情。我想知道我是正确地做这件事还是做这件事。

criteria.add(Restrictions.in("item.state", states));

1 个答案:

答案 0 :(得分:2)

使用您尝试过的标准:

criteria.add(Restrictions.in("item.state", states));

会出现以下错误

org.hibernate.QueryException: could not resolve property: item of: Test

这是因为您的Test类中没有“item”属性。

要使其正常工作,您需要为您的项创建别名并在限制中使用它:

Criteria crit = hibSession.createCriteria(Test.class);
crit.createAlias("items", "item_");
crit.add(Restrictions.in("item_.state", states));