HQL子查询报错:org.hibernate.hql.ast.QuerySyntaxException: unexpected token…

  • Post author:
  • Post category:其他



HQL语句:



select




count


(*)


from


(


select


stu.classId


from


Student stu


group




by


stu.classId) t_tmp_count


执行该HQL语句一直报错:org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1,


column


22 [


select




count


(*)


from


(…



反复检查该HQL语句,没发现问题;执行对应的sql语句,能正确得到结果;直接上网搜这个异常,也没得到多少有用的信息。






最后不得已,只好用Native SQL查询解决问题。


解决完后马上又想到可以用下面HQL语句解决问题


select




count


(


distinct


stu.classId)


from


Student



只怪自己当时钻牛角尖。






下班后,专门打开《hibernate_reference.pdf》《第14章 HQL: Hibernate查询语言》。猛然瞥见《14.13. 子查询》小节倒数第二段:





Note that HQL subqueries can occur


only




in


the


select




or




where


clauses






原来“

HQL子查询只能出现在




select





where




字句中








版权声明:本文为u013972119原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。