看起來像我見過的大多數JPA/Hibernate實體bean類的示例都沒有明確的同步。然而,在構建事務的上下文中,可以在這些對象上調用getters/setter。而且這些方法可以跨多個線程調用(儘管也許這是不尋常的和奇怪的)。JPA/Hibernate實體類和同步的最佳實踐是什麼?
看起來如果它是跨多個線程構建的,那麼對對象狀態的更改可能會丟失,這很可悲。
那麼,是不是同步最佳做法? 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; }
}
執行投擲星方法都需要同步?我當然不希望我的忍者失去任何投擲的星星。
」[[]]對象狀態的改變會丟失,這會很難過。「 < - 我喜歡那種輕描淡寫(「會很傷心」):-) – dertoni 2012-02-13 09:06:25