我想达到上述要求。
我有一个像
这样的课程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));
答案 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));