【发布时间】:2019-05-29 04:08:18
【问题描述】:
我有一个实体:
@Entity
public class Book {
@Version
private Integer version;
}
在并发事务中,我有一个错误 OptimisticLockException,因为我使用了 @Version 属性。没有@Version 我有一个错误: ConcurrentModificationException。
OptimisticLockException 和 ConcurrentModificationException 有什么区别?
【问题讨论】:
-
您从
java.util包中获得ConcurrentModificationException? -
@PiotrPodraza 是的,如果我不使用版本注释,它来自 java.util 包。另一方面,如果我使用版本注释乐观锁启用,我有一个 OptimisticLockException。因此,当我使用版本和不使用版本注释时,当两个事务修改实体时,相同的示例会引发不同的错误。