看起来像我见过的大多数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