鉴于以下两个实体
@Entity
public class A {
@Version
protected int version;
String basicPropertey;
// getter and setter for basicProperty
}
@Entity
public class B {
@Version
protected int version;
@ManyToOne
private A a;
public B(A a) {
this.a = a}
}
//getter for a
}
两个问题:
每次实体A的版本号都会增加 实体B合并到DB(注意没有 CascadeType.MERGE定义了与A)的关系,因而导致了 A与a合并时可能出现的OptimisticcLockException 不同的版本号?
如果是的话,是否有助于避免出现问题
如果我在上添加@JoinColumn(updatable=false)
,则为OptimisticLockException
关系
我的情况是实体B经常更新和偶尔更新,但只有它的基本属性(不是关系),我在实体A上得到一个OptimisticLockException。
答案 0 :(得分:1)
如果您只更改B,则无法在A上获得锁定错误。
您只会在B上遇到锁定错误。
检查SQL日志,了解您实际在做什么。