首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >order_updates属性如何避免Hibernate中的死锁

order_updates属性如何避免Hibernate中的死锁
EN

Stack Overflow用户
提问于 2014-08-05 19:23:29
回答 1查看 1.6K关注 0票数 2

根据Hibernate文档,属性hibernate.order_updates的详细信息如下:

强制Hibernate根据要更新的项的主键值命令SQL更新。这将减少高度并发系统中的事务死锁。例如真假

因此,通过将此属性设置为false,死锁如何发生。请帮助我理解这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-05 21:34:23

当事务1同时更新行1和事务2更新行2时,可能会发生死锁。现在事务1想更新第2行,但是必须等待事务2完成,因为它持有写锁。现在,如果事务2想更新第1行,它必须等待事务1,因为它持有该锁,并且会发生死锁。

正如您将注意到的,这是因为事务使用反向顺序进行更新(事务1,第一行,第1行,然后第2行,事务2,第一行,第2行,第一行)。使用此属性,您可以强制hibernate始终以相同的方式排序,并且不会发生所描述的情况。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25146737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档