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

想统计某类别数据的数量,于是写了个子查询,HQL内容大致如下:

select count(*) from (select stu.classId  from Student stu group by stu.classId) 

执行该HQL语句一直报错:org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1, column 22 [select count(*) from (...  

反复检查该HQL语句,没发现问题;在数据库中执行对应的sql语句,也能正确得到结果;

不接问题原因,最后看到一篇帖子说到

《hibernate_reference.pdf》《第14章 HQL: Hibernate查询语言》。猛然瞥见《14.13. 子查询》小节倒数第二段:

Note that HQL subqueries can occur only in the select or where clauses

原来“HQL子查询只能出现在select或where字句中“ 


由于使用了Hibernate,最终只能使用如下HQL解决,其实这个更简便:

select count(distinct stu.classId)  from Student

部分描述参照文章:https://blog.csdn.net/u013972119/article/details/31835333 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值