2013-04-10 51 views
1

我在設置對象鎖定模式時遇到了問題。休眠/ JPA鎖定OPTIMISTIC_FORCE_INCREMENT不能正常工作

下面是代碼:

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的修改,在這裏這就是爲什麼我使用強制增量功能。

但顯然它根本不工作。請幫忙嗎?

回答

2

所以很多搜索後,我用它有這個極好的錯誤休眠3.6.10.Final版本:從READ https://hibernate.atlassian.net/browse/HHH-5222

升級到OPTIMISTIC_FORCE_INCREMENT失敗

修復版本/ s的: 4.0.0.CR7

總而言之,默認情況下,鎖被設置爲READ,其優先級高於OPTIMISTIC或OPTIMISTIC_FORCE_INCREMENT,因此您無法更改它。

所以我升級到4.2.0.Final並且一切正常