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

Java 在hibernate查询的限制中匹配列表的所有内容,java,hibernate,Java,Hibernate,我想达到以上要求 我有一门课 public class Test{private String id;private List<Items> items;} public class Item{private String name; private String state;} 我想查询特定限制组中所有项目的状态 比如说 有些状态类似于{完成,完成需要确认,拒绝} 我想查询{Done,Done需要确认}组中所有项的状态 如果存在一个项目的状态不在上述状态,则不应给出查询结果

我想达到以上要求

我有一门课

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))

使用您尝试过的标准:

criteria.add(Restrictions.in("item.state", states));
将给您以下错误

org.hibernate.QueryException: could not resolve property: item of: Test
这是因为测试类中没有“item”属性

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

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

谢谢你的回复。但是这只会返回限制中所有状态的测试对象。我猜不会。这将返回测试对象限制状态中的任何一个状态。我想查询当限制组中每个测试对象中的所有状态都存在时,哪个会返回测试对象。谢谢!