如何在同一 TX 中发生 OptimisticLockException 后重试更新
在我的程序中,我需要能够在外部事务更新行后重试行更新。 Hibernate/JPA 抛出 OptimisticLockException,我捕获了它。 重试时,我尝试通过 JPQL/HQL 从数据库重新读取行,但 select 语句生成相同的 OptimisticLockException。 有没有办法重新读取该行的最新版本并在同一个事务中更新它?
In my program I need to be able to retry row update after the row was updated by an external transaction. Hibernate/JPA throws OptimisticLockException
, which I catch.
Upon retry I try to re-read the row from DB through JPQL/HQL but the select statement generates the same OptimisticLockException
.
Is there any way to re-read the latest version of the row and update it in THE SAME transaction?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Session.refresh(object)
或Session.lock()
可能比较合适。Session.refresh(object)
orSession.lock()
would probably be appropriate.