我有一个部门实体,其关系如下:
@ManyToOne
@JoinColumn(name = "ik_parent_department_id")
private Department parentDepartment;
@OneToMany(mappedBy = "parentDepartment")
private Set<Department> children = new HashSet<Department>(0);
我要实现下一个:当我删除部门的时,然后将此部门 null的所有子的 ik_parent_department_id 参数设置为。任何想法如何做到这一点?
最佳答案
您必须将 child 的ik_parent_department_id
显式设置为null。
Department parentDepartment = (Department) session.load(Department.class, id);
session.delete(parentDepartment);
for (Department child : parentDepartment.getChildren()){
child.setParentDepartment(null);
}
session.flush();
使用级联,您将只能删除子
Departments
。关于java - 在删除时在@OneToMany中的 hibernate 中设置null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8243400/