Hibernate中莫名其妙的GROUP BY
环境:Spring 2.5 + Hibernate3.2
HQL: select department.organize.id,department.organize.organizename,max(department.createdate) from Department department group by department.organize.id,department.organize.organizename
说明: Department是部门表,Organize是企业表, 部门表与企业表是多对一关系,这已通过映射文件分别做了多对一及一对多映射。Department中有属性organize
通过Spring的getHibernateTemplate().find(HQL)//HQL为上面所写的HQL语句。
执行时出现错误,错误提示:Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
看着这不知所云的错误提示(选择列表中存在无效表达式,不能包括集聚函数或Group by子句),于是修改了一下HQL,修改后的HQL为:
HQL:select department.organize.id,max(department.createdate) from Department department group by department.organize.id
执行通过,执行结果正确。
这两句HQL区别只是第一个在选择列表及Group by中多了一个字段,另外,所有HQL均书写正确,已仔细比对过。
不知第一句到底错在哪里?