Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:按实体(非Id)查询子对象(关联)的条件_Java_Hibernate_Jpa_Criteria Api - Fatal编程技术网

Java Hibernate:按实体(非Id)查询子对象(关联)的条件

Java Hibernate:按实体(非Id)查询子对象(关联)的条件,java,hibernate,jpa,criteria-api,Java,Hibernate,Jpa,Criteria Api,我想用Hibernate条件查询子对象列表来查询父对象。我知道如何使用child的id,但不直接使用实体 这项工作: List<Long> listOfChildLongChildIds = new ArrayList<Long>(); listOfChildLongChildIds.add(new Long(1)); listOfChildLongChildIds.add(new Long(2)); Criteria criteria = getSession().

我想用Hibernate条件查询子对象列表来查询父对象。我知道如何使用child的id,但不直接使用实体

这项工作:

List<Long>  listOfChildLongChildIds = new ArrayList<Long>();
listOfChildLongChildIds.add(new Long(1));
listOfChildLongChildIds.add(new Long(2));

Criteria criteria = getSession().createCriteria(Parent.class);
Criteria criteriaChilds = criteria.createCriteria("childs");
criteriaChilds.add(Restrictions.in("id", listOfChildLongChildIds));
将引发异常:

无法将子项转换为java.lang.Long


您应该能够在方法中将对象传递给限制

Restrictions.in("childs", <childObjectslist>)
Restrictions.in(“childs”,)

您应该能够在
方法中将对象传递给限制

Restrictions.in("childs", <childObjectslist>)
Restrictions.in(“childs”,)

我认为您应该能够做到以下几点:

Criteria criteria = getSession().createCriteria(Parent.class);
criteria.createCriteria("childs","childs");
criteria.add(Restrictions.in("childs.id", listOfChildLongChildIds));

我认为你应该能够做如下事情:

Criteria criteria = getSession().createCriteria(Parent.class);
criteria.createCriteria("childs","childs");
criteria.add(Restrictions.in("childs.id", listOfChildLongChildIds));

非常感谢你的回答!但问题是(至少在我的测试中,您的建议失败了!?)您命名为“childs”的参数必须是(根据文档)子对象的属性/成员。当我通过ID进行查询时,它必须以某种方式是ID。我需要的是类似以下语句:Restrictions.idi();您是否有任何您的答案所依据的特殊文件?但无论如何感谢您的回答。错误:索引::4处缺少in或OUT参数。有什么线索吗?非常感谢你的回答!但问题是(至少在我的测试中,您的建议失败了!?)您命名为“childs”的参数必须是(根据文档)子对象的属性/成员。当我通过ID进行查询时,它必须以某种方式是ID。我需要的是类似以下语句:Restrictions.idi();您是否有任何您的答案所依据的特殊文件?但无论如何感谢您的回答。错误:索引::4处缺少in或OUT参数。任何线索?错误:索引::4处缺少IN或OUT参数。任何线索?错误:索引::4处缺少IN或OUT参数。有线索吗?