次の 2 つのエンティティがあるとします。
@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
}
2 つの質問:
エンティティ B が DB にマージされるたびにエンティティ A のバージョン番号が増加するか (A との関係で CascadeType.MERGE が定義されていないことに注意してください)、したがって、A が別のエンティティとマージされると OptimisticcLockException が発生する可能性があります。バージョンナンバー?
はいの場合
@JoinColumn(updatable=false)
、関係を追加すると OptimisticLockException の可能性を回避するのに役立ちますか?
私の状況では、エンティティ B は非常に頻繁に更新され、A は散発的に更新されますが、その基本的な属性 (関係ではない) のみが更新され、エンティティ A で OptimisticLockException が発生します。