hql关于join查询的问题

yak1314 2011-07-20 05:51:41
hql语句:
from MipUserOnlineStatistic a join (select statisticstime,max(onlinecnt) cnt from MipUserOnlineStatistic where enterpriseid ? and statisticstime like ? group by statisticstime) as b on a.statisticstime=b.statisticstime and a.onlinecnt = b.cnt group by a.statisticstime
报错:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from MipUserOnlineStatistic a join( select statisticstime,max(onlinecnt) cnt from' at line 1

这个程序的问题是解决了,但是还是希望知道是什么原因,导致这个hql语句不能用,我觉得语法可没有什么问题呀,在db上运行是可以的,就是在hql上一直报错,不知道为什么,请大家帮忙看下,十分感谢。!!!!
...全文
449 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yak1314 2011-07-21
  • 打赏
  • 举报
回复
蒽,是呀,我就是用sql才解决的,用sql写的语句还比较简单。谢谢各位啦。
北京-李大鹏 2011-07-21
  • 打赏
  • 举报
回复
没测试这样的HQL,猜测一下哈:

正常的HQL应该是这样,from ClassA a join ClassB b on a.id=b.id where...
这里你的JOIN后面是个select,对于HQL来说,要求是个类(或者说对象),所以解析之后会有问题。

如果一定要这样的话,需要在select中创建个对象,但是这样你的HQL会变得更复杂,也不一定是对的。呵呵,因为没有验证过,纯属猜测。

HQL本质上是使用Class写SQL的,和原生的SQL还是不一样的,像楼主这样的语句,还是直接SQL吧。
yak1314 2011-07-21
  • 打赏
  • 举报
回复
呵呵,终于知道是什么原因啦,我这么写hql返回的不是一个不仅仅是一个实体,而且也返回了join 连接的查询的字段statisticstime和max(onlinecnt),所以就不可能返回一个实体了,所以就报错了,其实我的hql写的没有问题。
yak1314 2011-07-21
  • 打赏
  • 举报
回复

hql 对复杂的sql支持不好 说了让你直接用sql
你坚持用hql 我也没办法
如果你是为了返回实体对象的问题
你可以自己将返回的object 封装成VO呀



我最终说解决的办法是用的sql,只是我想知道错误的原因是什么
yak1314 2011-07-21
  • 打赏
  • 举报
回复
cnt是什么? 一个列名的话,, 前面请加','

这个是我重命名。
qq82557566 2011-07-20
  • 打赏
  • 举报
回复
个人建议,, 此类问题, 你看看错误提示...
比如You have an error in your SQL syntax 语法错误use near 'from MipUserOnlineStatistic from..附近

如果英文不好, 下载一个翻译工具..
qq82557566 2011-07-20
  • 打赏
  • 举报
回复
You have an error in your SQL syntax这句就已经说了你语法错误..

select statisticstime,max(onlinecnt) cnt from MipUserOnlineStatistic

cnt是什么? 一个列名的话,, 前面请加','
zn85600301 2011-07-20
  • 打赏
  • 举报
回复
hql 对复杂的sql支持不好 说了让你直接用sql
你坚持用hql 我也没办法
如果你是为了返回实体对象的问题
你可以自己将返回的object 封装成VO呀

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧