JPAプロバイダーとしてEclipseLinkを使用しています。親オブジェクトで子が追加/削除されるたびにバージョン属性が更新されないという問題に直面しています。
クラス会社があります。Company クラスにはプロパティ Set があります。Company クラスのバージョン フィールド。非関係属性を更新するたびに、Company インスタンスのバージョン フィールドがインクリメントされます。ただし、Employee クラスのインスタンスを 1 対多のコレクションの従業員に追加すると、Company インスタンスのバージョン フィールドはインクリメントされません。基本的に、親オブジェクトに子が追加または削除された場合、親のバージョンはインクリメントされません。
@Entity
class Company {
@Id
private long id;
private String name;
@Version
private Integer version;
@OneToMany(mappyedBy="company", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Employee> employees;
//
// setter / getter methods
}
@Entity
class Employee {
@Id
private long id;
private String name;
@ManyToOne
@JoinColumn(name = "compid")
private Company company;
//
// setter / getter methods
}
親オブジェクトに子が追加または削除されると、Hibernate は親オブジェクトのバージョンをインクリメントします。
EclipseLink は同じように動作するべきではありませんか? 何か不足していますか?
前もって感謝します。