And*_*dre 5 java jpa locking pessimistic eclipselink
我正在使用JPA 2.0的EclipseLink实现,它允许悲观锁定.我知道如何锁定实体,但如何释放锁?起初我认为这一切都在事务中处理(换句话说,实体被锁定直到你提交事务),但似乎并非如此.
我尝试了一个快速谷歌搜索(似乎这应该是非常明显的),但我还没有找到任何东西......
睡了一会儿......早上做了一些测试,我相信我已经弄明白了.因此,锁实际上是在事务中处理的.但是,当我测试我的代码时,我能够使用EntityManager.find(Class,key)方法检索锁定的行(未指定锁定策略).我错误地认为通过锁定行,无法读取行.期.但是,我重读了PESSIMISTIC_READ和PESSIMISTIC_WRITE的JPA定义并注意到了我的问题:
PESSIMISTIC_READ - 实体被锁定在数据库上,阻止任何其他事务获取PESSIMISTIC_WRITE锁. PESSIMISTIC_WRITE - 实体被锁定在数据库上,阻止任何其他事务获取PESSIMISTIC_READ或PESSIMISTIC_WRITE锁.
锁不一定会阻止所有读取,它只是阻止另一个事务在行上放置READ或WRITE锁.
| 归档时间: |
|
| 查看次数: |
5926 次 |
| 最近记录: |