HQL语句无法执行,在mysql可以通过

SELECT DISTINCT userCity.userId FROM UserCity userCity
GROUP BY 1 HAVING count(*)=
(SELECT MAX(d.num) FROM
(SELECT userCity.userId,
count(*) num FROM UserCity userCity GROUP BY1) d)

最后面group by 和 1之间没空格

hql中并不是用的数据库的表名,而是生成的实体类的类名,这个要注意一下的。你看下是不是写的表名而不是实体类名

图片说明 表名跟group by 之间缺少空格

hibernate中没有表和字段的概念,只有类和字段的概念,而且hibernate中好像可以写sql,session.createSQLQuery(“sql语句”)