在我的条件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”,“result”:null,“error”:“\ r \ n内部异常:com.sap.dbtech.jdbc.exceptions.jdbc40.SQLSyntaxErrorException:[ - 8017] (在8处):列必须是组列:ID \ r \ n \ n错误代码:-8017 \ r \ n
请帮助我,因为我已经坚持了好几个小时了。感谢
答案 0 :(得分:1)
该消息告诉您在查询中需要group by子句。 select子句中的每一列(除了作为聚合函数结果的列)必须在group by子句中:
criteriaQuery.groupBy(root.get("point").get("id"),
root.get("player").get("userid"))