HQL语句 String queryString = "select sum(dvd.count),dvd.dvdType from DvdTable1 dvd 从HQL语法的角度,这条语句没错,dvd.dvdType作为groupby条件, 也被select 显示出来 |
但执行时,从[Debug info]观察,hibernate 组成下面的语句 Hibernate: |
这就造成了group by的原则问题:不在groupby条件内,也不被聚合函数处理的字段,不允许被select出来 oracle 报错: Caused by: java.sql.SQLException: ORA-00979: not a GROUP BYexpression |
解决: HQL改成如下 select sum(dvd.count),dvd.dvdType.id,dvd.dvdType.name fromDvdTable1 dvd 既然你想显示type.name,就把type,name作为group by条件,就可以select了 Hibernate: ---------- -------------------------------------------------- 10 rows selected. 原文:http://blog.sina.com.cn/s/blog_6151984a0100kf1x.html |
HQL group by 语句和ManyToOne 一起使用时常出的错
最新推荐文章于 2023-02-01 10:12:00 发布