【发布时间】:2014-02-11 21:26:24
【问题描述】:
我有一个实体 A 和 B 元素的集合。
我想创建一个基本上这样做的查询:
Select a, count(b) from A a inner join fetch a.b b group by a
我希望得到一个数组对象,其中元素 0 是我的 A 实体,元素 1 是一个数字,它是集合中的数字。
Jpa(由 hibernate 支持)抛出以下错误:
Caused by: java.sql.SQLException: Not in aggregate function or group by clause: org.hsqldb.Expression@16d829b1 in statement (sql query)
当我将本地 sql 从错误中复制并粘贴到 postgres 中时,它不起作用。
当我从以下 JPQL 查询中复制并粘贴本机 sql 时:
Select a, count(b) from A a inner join fetch a.b b group by a, b
Postgres 返回预期结果。问题是 Hibernate 仍然会出现与第一个 Query 相同的错误。
【问题讨论】:
-
您的查询没有意义。如果您按 a, b 分组,计数显然是 1,因为每个 [a, b] 行都将与所有其他行不同。也就是说,即使你修复了查询,你也会被hibernate.atlassian.net/browse/HHH-1615
-
这个错误看起来确实像我遇到的问题,但 Zaroual Mohamed 的查询确实有效