我使用 EclipseLink 作为 JPA 提供程序。每当在父对象中添加/删除子对象时,我都面临版本属性未更新的问题。
有一类公司。Company 类有一个属性 Set。公司类一个版本字段。每当我更新任何非关系属性时,公司实例的版本字段都会增加。但是,如果我将 Employee 类的实例添加到一对多集合员工中,则 Company 实例的 version 字段不会增加。基本上,如果将子对象添加到父对象或从父对象中删除,则父对象的版本不会增加。
@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 不应该以同样的方式表现吗?我错过了什么吗?
提前致谢。