【问题标题】:Aggregate (sum,max,avg) function in Critera API JPACriteria API JPA 中的聚合 (sum,max,average) 函数
【发布时间】:2013-03-25 17:57:06
【问题描述】:

在我的条件 API 查询中,我查询表的三列的以下查询有效。

cq.multiselect(root.get("point").get("id"), root.get("player").get("userid"), root.get("amount") );

但是当我想要使用以下查询的列数量的总和时,它会给出一个 sql 错误。查询是

cq.multiselect(root.get("point").get("id"), root.get("player").get("userid"), cb.sum(root.get( "金额")) );

我得到的错误是。

{"id":"6","re​​sult":null,"error":"\r\n内部异常:com.sap.dbtech.jdbc.exceptions.jdbc40.SQLSyntaxErrorException: [-8017] (at 8): Column must be group column:ID\r\n错误代码: -8017\r\n

请帮我解决这个问题,因为我已经坚持了好几个小时了。谢谢

【问题讨论】:

    标签: jpa jpa-2.0 criteria-api


    【解决方案1】:

    该消息告诉您在查询中需要一个 group by 子句。 select 子句中的每一列(聚合函数的结果除外)都必须在 group by 子句中:

    criteriaQuery.groupBy(root.get("point").get("id"), 
                          root.get("player").get("userid")) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      相关资源
      最近更新 更多