我正在使用EclipseLink。我在三个实体之间有三元关系,称为Staff,Person和Job。我介绍了Embeddable类StaffItem,它只包含Person和Job。工作人员有一个StaffItems的ElementCollection。
我将新的StaffItems持久保存到数据库中没有问题,这些数据被添加到Staff Entity,但每当我更改一个项目或删除它并尝试合并现有的Staff Entity时,EntityManager似乎会遇到无限循环冲洗。我没有得到错误或异常,我只是不从flush()返回。
@Entity
public class Staff {
private List<StaffItem> staffItems;
@ElementCollection
@CollectionTable(name = "staff_items", joinedColumns = @JoinedColumn(name = "staff"))
public List<StaffItem> getStaffItems() { ... }
// setter, etc.
}
@Embeddable
public class StaffItem {
private Person person;
private Job job;
@ManyToOne
@JoinColumn(name = "person", referencedColumn = "id")
public Person getPerson() { ... }
@ManyToOne
@JoinColumn(name = "job", referencedColumn = "id")
public Job getJob() { ... }
// setter, etc.
}