我有一个带有员工对象和地址对象的View实体对象。视图包含员工列表。员工有一个地址列表。我想删除该员工。我抱怨删除视图的约束。视图应该保留,但视图和员工之间的关系应该消失。地址也应该消失。 谁能告诉我如何设置我的JPA来处理这种情况?或者我应该以编程方式执行此操作。 (首先查找所有视图,然后从视图中删除员工。)
View {
@OneToMany(targetEntity = Employee.class, orphanRemoval = true)
@JoinTable(name = "View_Employee")
protected List<Employee> employees;
}
Employee {
@CascadeOnDelete
@OneToMany(targetEntity = Address.class, orphanRemoval = true,fetch=FetchType.EAGER)
@JoinTable(name = "Employee_Address")
@XmlElement(required = true)
@OrderColumn
protected List<Address> address;
}
Address{
nothing of interest, no ties to view or employee
}
答案 0 :(得分:1)
在JPA中删除对象时,必须先从模型中删除对它的所有引用。
如果要删除员工,请先从所有视图中删除员工。
对于地址,如果使用@CascadeOnDelete,请确保已将约束设置为级联,否则将其删除。