【发布时间】:2016-03-29 18:26:53
【问题描述】:
我正在尝试按商店国家/地区对商店进行分组,并查看每个国家/地区有多少家商店。商店国家恰好是商店代码的前 2 个字符。这意味着如果商店代码是“US000010”,则国家/地区是“US”
我的实体对象:
...
public class Store {
@column(name = "code")
private String code;
...
}
我的 JPQL 是:
SELECT substring(s.code, 0, 2),
count(s)
FROM Store s
GROUP BY substring(s.code, 0, 2)
这一直在抛出我ORA-00979: not a GROUP BY expression,我怀疑这是由于上面的 JPQL 转换为
SELECT SUBSTR(CODE, ?, ?), COUNT(CODE) FROM Store GROUP BY SUBSTR(CODE, ?, ?)
排除其他选择,如创建视图或使用本机查询,有什么方法可以使用 JPQL 在 Eclipselink 中按子字符串执行分组?
【问题讨论】:
-
您是否尝试为您的子字符串函数结果指定标识符? "select substring(s.code, 0, 2) as mystring, count(s) from Store s group by mystring"?
-
不起作用。仍然得到同样的错误。 JPQL 仍然转换为看起来相同的 sql。
标签: group-by eclipselink jpql