Hibernate怎样用update加in语句,高手请进,急急!!

Away_11111111 2011-03-28 04:24:01
这是sql语句,在数据库里面可以正常更新。
update nqueue set status='B',ID='123' where (notifyId in
(select top 8 n.notifyId from nqueue n WHERE
n.status <>'A' and n.status <>'B' order by n.time desc))

但改成了Hibernate的hql语句后,不能正常运行
update Nqueue set status='B',ID='123' where (notifyId in
(select top 8 n.notifyId from Nqueue n WHERE
n.status <>'A' and n.status <>'B' order by n.time desc))


显示在hql语句里面不能用top,但是去掉的话,不能用order by n.queuedTime desc,再去掉
order by n.queuedTime desc的话,原来的hql语句能用,但是已经不是我想得到的数据。



PS:涉及到top,不知能用否,没多少分了,但是还是大家希望能帮我解决。这样也能帮到遇到类似情况的人。
...全文
408 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Away_11111111 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ylz2007 的回复:]
U can not use top in hibernate.

Suggestion:
Use two steps:1. use SQLQuery query notifyId
2. use queryed notifyId to constrct SQL, then do update
[/Quote]

不能先查询数据出来再更新(这样可能多台服务器查询同一组数据,重复了更新操作)
由于涉及到多线程和并发方面,我要一次性的更新。
  • 打赏
  • 举报
回复
U can not use top in hibernate.

Suggestion:
Use two steps:1. use SQLQuery query notifyId
2. use queryed notifyId to constrct SQL, then do update
wangshiyang 2011-03-28
  • 打赏
  • 举报
回复
这个没用过!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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