| 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 一起使用时常出的错
最新推荐文章于 2025-08-08 15:23:17 发布
本文详细解析了一条HQL语句在执行时的原理及遇到的问题,通过实例展示了如何修正语句以避免Oracle的错误,并阐述了在执行过程中Hibernate生成的SQL语句细节。

4337

被折叠的 条评论
为什么被折叠?



