Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Jpa 无法为具有多个返回的查询创建TypedQuery_Jpa - Fatal编程技术网

Jpa 无法为具有多个返回的查询创建TypedQuery

Jpa 无法为具有多个返回的查询创建TypedQuery,jpa,Jpa,我正在使用以下JPA查询,并获得java.lang.IllegalArgumentException:无法为具有多个返回异常的查询创建TypedQuery TypedQuery<RaBdrRating> uQuery = (TypedQuery<RaBdrRating>)entityManager.createQuery(" SELECT r.activePackage,SUM(r.duration),SUM(r.charge),COUNT(r)

我正在使用以下JPA查询,并获得java.lang.IllegalArgumentException:无法为具有多个返回异常的查询创建TypedQuery

TypedQuery<RaBdrRating> uQuery = 
  (TypedQuery<RaBdrRating>)entityManager.createQuery("
     SELECT r.activePackage,SUM(r.duration),SUM(r.charge),COUNT(r) 
     FROM RaBdrRating r WHERE r.callType = :callType 
     and r.startDate between :startDate and :endDate 
     GROUP BY r.activePackage",RaBdrRating.class);

uQuery.setParameter("callType", model.getCallType());
uQuery.setParameter("startDate",startDate);
uQuery.setParameter("endDate",endDate);
List<RaBdrRating> listOfPackages = uQuery.getResultList();
TypedQuery uQuery=
(TypedQuery)entityManager.createQuery(“
选择r.activePackage、SUM(r.duration)、SUM(r.charge)、COUNT(r)
来自RABDR,其中r.callType=:callType
和r.startDate介于:startDate和:endDate之间
按r.activePackage“RaBdrRating.class”分组;
setParameter(“callType”,model.getCallType());
setParameter(“startDate”,startDate);
setParameter(“endDate”,endDate);
List listOfPackages=uQuery.getResultList();

有人能告诉我我的问题出在哪里吗…..我是JPA新手,我不知道问题出在哪里,我在这里被折磨了一下。如果有人有想法,请告诉我。

这似乎是个错误:


显然,它在4.1.5版中已修复。

这似乎是一个错误:

显然,它在4.1.5版中已修复。

我遇到了相同的错误: 无法使用请求的结果类型为具有多个返回的查询创建TypedQuery

解决方案:

有这样一个查询:

Select e.fieldA, e.fieldB, e.fieldC From Entity e
必须使用查询中指定的参数声明构造函数:

    package somepackage;

    public class Entity {
    ...
       public class Entity() {}

       public class Entity(Type fieldA, Type fieldB, Type fieldC) {
           this.fieldA = fieldA;
           this.fieldB = fieldB;
           this.fieldC = fieldC;
       }
    ....
    }
最后,修改您的查询

Select NEW somepackage.Entity(e.fieldA, e.fieldB, e.fieldC) From Entity e
您正在指示如何创建对象。

我遇到了相同的错误: 无法使用请求的结果类型为具有多个返回的查询创建TypedQuery

解决方案:

有这样一个查询:

Select e.fieldA, e.fieldB, e.fieldC From Entity e
必须使用查询中指定的参数声明构造函数:

    package somepackage;

    public class Entity {
    ...
       public class Entity() {}

       public class Entity(Type fieldA, Type fieldB, Type fieldC) {
           this.fieldA = fieldA;
           this.fieldB = fieldB;
           this.fieldC = fieldC;
       }
    ....
    }
最后,修改您的查询

Select NEW somepackage.Entity(e.fieldA, e.fieldB, e.fieldC) From Entity e
您正在指示将如何创建对象。

相似的一个,可以引用&相似的一个,可以引用&