保存:今私は教室と呼ばれるオブジェクト持って熱心にロードされたパラメータを持つオブジェクトとOptimisticLockExceptionが
@Entity
public class Classroom {
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST })
@JoinColumn(name = "girl", referencedColumnName = "id", nullable = true)
private GirlsInformationObject girl;
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST })
@JoinColumn(name = "boy", referencedColumnName = "id", nullable = true)
private BoysInformationObject boy;
}
を、私は必要なオブジェクトを教室についての情報を保持し、更新の両方二つのスレッドを、持っている想像してみてください。スレッドの1つは、女の子に関する情報でオブジェクトを更新し、もう1つは男の子に関する情報でオブジェクトを更新しています。
両方のスレッドが同じClassroomエントリに同時にアクセスするとします。スレッドは適切なInformationObjectを調整し、ClassroomRepository.save(classRoom)
を使用してオブジェクトをデータベースに格納します。 InformationObjectsが遅延読み込みされる場合、OptimisticLockExceptionを防ぐことはできますか?
質問は、そのオブジェクトを更新するオブジェクトではないため、型を 'FetchType.EAGER'に設定するだけですべての作業を回避できるかどうかです。 – Joetjah