1

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

这是代码:

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,这就是我使用强制增量功能的原因。

但显然它根本不起作用。请帮忙?

4

1 回答 1

2

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

从 READ 升级到 OPTIMISTIC_FORCE_INCREMENT 失败

修复版本/秒:4.0.0.CR7

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

所以我升级到 4.2.0.Final 一切正常

于 2013-04-11T08:41:35.910 回答