Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Hibernate子查询上的ClassCastException_Hibernate_Subquery_Classcastexception - Fatal编程技术网

Hibernate子查询上的ClassCastException

Hibernate子查询上的ClassCastException,hibernate,subquery,classcastexception,Hibernate,Subquery,Classcastexception,下面的代码有问题。类id是长的,B类id是嵌入的id,其中一个字段是类 DetachedCriteria dc = DetachedCriteria.forClass(A.class,"a").setProjection(Property.forName("a.id")); Criteria cr= this.sessionFactory.getCurrentSession().createCriteria(B.class,"b").add(Subqueries.in("b.id.a

下面的代码有问题。类id是长的,B类id是嵌入的id,其中一个字段是类

DetachedCriteria dc = DetachedCriteria.forClass(A.class,"a").setProjection(Property.forName("a.id"));      
Criteria cr= this.sessionFactory.getCurrentSession().createCriteria(B.class,"b").add(Subqueries.in("b.id.a.id", dc));           
List<B> bb = cr.list();
但这是:

List<Long> dd =  this.sessionFactory.getCurrentSession().createCriteria(A.class,"a").setProjection(Property.forName("a.id")).list();
Criteria cr= this.sessionFactory.getCurrentSession().createCriteria(B.class,"b").add(Restrictions.in("b.id.a.id", dd));


List<B> bb = cr.list();

工作。我做错了什么?

在这种情况下应该使用subquerys.propertyIn

List<Long> dd =  this.sessionFactory.getCurrentSession().createCriteria(A.class,"a").setProjection(Property.forName("a.id")).list();
Criteria cr= this.sessionFactory.getCurrentSession().createCriteria(B.class,"b").add(Restrictions.in("b.id.a.id", dd));


List<B> bb = cr.list();