当前位置: 首页 > 知识库问答 >
问题:

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

司徒元明
2023-03-14

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

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

谁能告诉我我的问题有什么错吗.....我是JPA的新成员,我不知道这里有什么问题。如果有人有想法,请告诉我。

共有2个答案

孔欣荣
2023-03-14

这似乎是这个错误:https://hibernate.onjira.com/browse/HHH-6304

它在版本4.1.5中显然是固定的。

姚俊贤
2023-03-14

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

解决方案:

有这样的查询:

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

您正在指示如何创建对象。

 类似资料:
  • 这是我第一次使用JPA。我找不到错误。

  • 我正在尝试将预言机结果列表绑定到摘要列表。但是我的摘要列表有3个类被定义为DB的实体 我有三个实体类A,B,C 我使用以下查询获得结果,但结果无法转换为摘要对象 调试:我确保结果列表不为空,如果我不将其转换为对象,下面的查询可以正常工作 我看到的第一种方法是遍历summaryList,并像这样将它们分配给单个列表,我还没有测试过这种方法,但我认为它可能会给出一个类强制转换异常,因为强制转换以前也有

  • 我收到错误“无法使用请求的结果类型为具有多个返回的查询创建TypeQuery”我尝试了所有列值返回。那次应用程序挂起。我需要在arraylist中获取客户端列表。请帮助,我是JPA新手。 客户端类是

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 本文向大家介绍MySQL查询返回TRUE为具有正值的行?,包括了MySQL查询返回TRUE为具有正值的行?的使用技巧和注意事项,需要的朋友参考一下 要为正值返回TRUE,为负返回FALSE,请使用MySQL IF()。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是对具有正值的行返回true的查询- 这将产生以下输出-

  • 问题内容: 我正在写一个跨三个表的JPQL查询。在我的结果列表中,我想获得每个匹配行的所有三个实体(希望如此)。 有任何想法吗? Hibernate 3.x是我的JPA提供程序。 问题答案: IIRC,您可以执行,结果将是,其中数组内容将包含o1,o2,o3值。