Hibernate 3.x で JPA 2 を使用しています。2 つの Entity オブジェクト Foo と Bar があり、関係は次のようになります -
@Entity
public class Foo{
@Id
private long id;
@OneToOne(cascade = CascadeType.ALL )
@JoinColumn(name = "bar")
private Bar bar;
@Version
private int version;
}
@Entity
public class Bar{
@Id
private long id;
private String name;
@Version
private int version;
}
今、私の問題は、好きなものをロードして更新した場合、HibernateFoo
がentityManager.find(...)
更新を開始し、バージョンのみをインクリメントすることです。オブジェクトの観点からは、Foo の状態も変化しないので、Foo のバージョンもインクリメントするべきではありませんか? ここで、からプロパティ
を削除したいと思います。また、更新された場合はインクリメントする必要があります。どうすればこれを達成できますか?name
Bar
foo.getBar().setName("someAnotherName");
entityManager.merge(foo)
Bar
Bar
version
Bar
version
Foo
Bar