2

在我的条件 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("amount"))) ;

我得到的错误是。

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

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

4

1 回答 1

1

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

criteriaQuery.groupBy(root.get("point").get("id"), 
                      root.get("player").get("userid")) 
于 2013-03-25T18:41:30.453 回答