Hibernate / JPA锁定OPTIMISTIC_FORCE_INCREMENT不起作用

时间:2013-04-10 15:59:02

标签: spring hibernate jpa optimistic-locking

我在设置对象的锁定模式时遇到了问题。

以下是代码:

MyObject a = myQuery.getSingleResult();
logger.info(entityManager.getLockMode(a));
entityManager.lock(a, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
logger.info(entityManager.getLockMode(a));

结果是:

OPTIMISTIC
OPTIMISTIC

我的对象A包含一个对象列表B.我想在修改B时增加A,这就是我使用强制增量功能的原因。

但显然它根本不起作用。有些帮忙吗?

1 个答案:

答案 0 :(得分:2)

所以经过大量的搜索,我使用的是Hibernate 3.6.10.Final版本,它有这个极好的bug: https://hibernate.atlassian.net/browse/HHH-5222

  

从READ升级到OPTIMISTIC_FORCE_INCREMENT失败

     

修复版本:4.0.0.CR7

简而言之,默认情况下,锁定设置为READ,其优先级高于OPTIMISTIC或OPTIMISTIC_FORCE_INCREMENT,因此您无法更改它。

所以我升级到4.2.0.Final,一切顺利