私が見た JPA/Hibernate エンティティ Bean クラスのほとんどの例では、明示的な同期が行われていないようです。ただし、トランザクションを構築するコンテキストで、これらのオブジェクトに対して getter/setter を呼び出すことは可能です。また、これらのメソッドを複数のスレッドで呼び出すこともできます (ただし、これは異常で奇妙なことかもしれません)。
複数のスレッドにまたがって構築されている場合、オブジェクトの状態への変更が失われる可能性があるようです。これは悲しいことです。
では、同期のベスト プラクティスを除外することはありますか? Hibernate のインストルメント化されたコードは適切な同期を処理していますか?
例として:
@Entity
public class Ninja {
@Id @GeneratedValue
private Long id;
@Column
private String name;
@Column
private int throwingStars;
public Ninja() {}
public int getThrowingStars() { return throwingStars; }
public void addThrowingStar() { throwingStars += 1; }
}
手裏剣のメソッドには同期が必要ですか? 私の忍者が手裏剣を失うことは絶対に望んでいません。