【问题标题】:Cannot create TypedQuery for query with more than one return using requested result type error on JPA无法使用 JPA 上的请求结果类型错误为具有多个返回的查询创建 TypedQuery
【发布时间】:2021-06-09 04:49:42
【问题描述】:

当我尝试使用此查询从数据库中获取结果时,我收到此错误 Caused by: java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return using requested result type [com.utc.pw.domain.evm.EVMQuestions]

public List<EVMQuestions> getAllHeaders(String salesOrder,String module) {
        List<EVMQuestions> headers=null;
        if(salesOrder.contains("V")||salesOrder.contains("v"))
        {
            headers = entityManager.createQuery("select i.header,min(question_ID) from EVMQuestions i where i.engineType='V2500' AND i.module='"+module+"' group by header order by min(question_ID)", EVMQuestions.class).getResultList(); 
        }
        else
        {
            headers =  entityManager.createQuery("select DISTINCT i.header from EVMQuestions i where i.engineType='CFM56-7B' AND i.module='"+module+"'", EVMQuestions.class).getResultList(); 
        }
        for(EVMQuestions i : headers){
            i.getHeader();
            i.getQuestion_ID();
        }
        System.out.println("DB Connection Success - EVM Headers retrieved");
        return headers;
    }

我该如何解决?

【问题讨论】:

    标签: jpa jpql


    【解决方案1】:

    我发现了问题所在。我改了代码

    public List<Object[]> getAllHeaders(String salesOrder,String module) {
            List<Object[]> headers=null;
            if(salesOrder.contains("V")||salesOrder.contains("v"))
            {
                headers = entityManager.createQuery("select i.header,min(question_ID) from EVMQuestions i where i.engineType='V2500' AND i.module='"+module+"' group by header order by min(question_ID)", Object[].class).getResultList(); 
            }
            else
            {
                headers =  entityManager.createQuery("select DISTINCT i.header from EVMQuestions i where i.engineType='CFM56-7B' AND i.module='"+module+"'", Object[].class).getResultList(); 
            }
            System.out.println("DB Connection Success - EVM Headers retrieved");
            return headers;
        }
    

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 2021-12-24
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多