删除父节点子节点未删除的两种方法
平时所使用的tree删除父节点,子节点还保留在数据库。
删除前:
删除后:
父节点已删除,但数据库保留了子节点数据,以下有两种方法解决
方法一:
使用递归删除方法,我使用的是mysql,sql语句改成
delete from dept where id = #{id} or id in (SELECT t3.id FROM (SELECT *, IF(find_in_set(t1.parent_Id, @p) > 0, @p:= concat(@p,',',id), 0) AS childId FROM (SELECT id, parent_Id FROM dept t ORDER BY id) t1, (SELECT @p:= #{id}) t2) t3 WHERE childId != 0);
里面的@p 是一个传参的对象,我这里面传的是 parent_id 父级id;;
第二种方法:后端限制删除,加一个if判断
if(sysDeptService.selectByParentId(id).size() > 0) {
return "请先删除下级部门";
}
根据查询id获取他的大小判断。
以上就是我所处理的方法。