1

我想达到上述要求。

我有一个像

public class Test{private String id;private List<Items> items;} 

项目类如

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

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

比方说。

有像{Done,Done需要确认,拒绝}这样的状态

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

如果有一个项目的状态不在上述状态中,则不应将其作为查询结果。

我检查这种事情。我想知道我这样做是否正确或如何去做。

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

4

1 回答 1

2

使用您尝试过的标准:

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

会给你以下错误

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

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

为了让它工作,你需要为你的 Item 创建一个别名并在你的限制中使用它:

Criteria crit = hibSession.createCriteria(Test.class);
crit.createAlias("items", "item_");
crit.add(Restrictions.in("item_.state", states));
于 2013-03-29T19:41:56.337 回答