Critera API JPA中的聚合(总和、最大值、平均值)函数

Critera API JPA中的聚合(总和、最大值、平均值)函数,jpa,jpa-2.0,criteria-api,Jpa,Jpa 2.0,Criteria Api,在我的CriteriaAPI查询中,我查询表的三列时使用以下查询 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(r

在我的CriteriaAPI查询中,我查询表的三列时使用以下查询

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”,“result”:null,“error”:“\r\n内部异常:com.sap.dbtech.jdbc.exceptions.jdbc40.SQLSyntaxErrorException:[-8017](第8页):列必须是组列:id\r\n错误代码:-8017\r\n


请帮我解决这个问题,因为我已经被困在这个问题上好几个小时了。谢谢

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

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