2013-03-25 4 views
2

В моих критериях API запрашивает следующий запрос, в котором я запрашиваю три столбца моей таблицы.Функция Aggregate (sum, max, avg) в Critera API JPA

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", "результат": NULL, "ошибка": "\ г \ nInternal Исключение: com.sap.dbtech.jdbc.exceptions.jdbc40.SQLSyntaxErrorException: [-8017] (на 8): колонка должна быть группа столбцов: ID \ г \ nНомер ошибки Код:. -8017 \ г \ п

Пожалуйста, помогите мне с этим, как я застрял на этом в течение нескольких часов теперь благодаря

ответ

1

В сообщении говорится, что в вашем запросе вам требуется предложение group by. Каждый столбец в предложении select (кроме тех, которые являются результатом агрегатной функции) должен находиться в группе по пункту:

criteriaQuery.groupBy(root.get("point").get("id"), 
         root.get("player").get("userid")) 
Смежные вопросы