spring data jpa中的删除父实体

777 阅读1分钟

当使用spring data jpa进行多对一关系管理的时候,有时需要删除父实体但保留子实体(弱关系) 处理方式有两种:

  1. 数据库支持情况下,将外键修改为 on delete set null, 但是spring data jpa中没有相关支持,所以需要手动修改数据库外键。参见stackoverflow上的问题
  2. 使用删除之前,遍历修改,参考stackoverflow解决方案
for (Department child : parent.getChildren()) {
    child.setParentDepartment(null);
}
session.delete(parent);