mysql使用hibernate,对查询到的表进行操作的时候报错,该怎么处理

一大波程序猿 清华大学 程序员  2015-10-12 04:12:49
String hql = "delete from Comment bean where bean.parent.id in (select c.id from Comment c where c.user.id=?)";

报的错误是You can't specify target table 'Comment ' for update in FROM clause
上网查了发现mysql不支持在查询的结果集中在对这个表进行操作,我照着网上改了下改成
delete from Comment bean where bean.parent.id in (select temp.id from (select c.id from Comment c) temp where temp.user.id=?))

但是依旧报错,在mysql中却能执行,可能是hql语句跟sql语句并不能一样写,求大神帮忙
...全文
76 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
那么我的问题就是想使用hql,却对hql语句不是很熟悉,不知道这种复杂的能不能写成一条
回复
qq_20062767 2015-10-12
你写的这个是通用的sql语句,而不是hibernate的hql语句,所以你要使用Hibernate的另外一个方法来执行,session.createSQLQuery(),而不是session.createQuery()这个方法,如果你想使用hql语句的话,就要修改了,希望对你有用。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-12 04:12
社区公告
暂无公告