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