删除关联数据,请问有简化的方法吗?那如果是45678层关联难道需要逐个去判断(语言-java)

问题

如果是多级关联删除还有跟好的解决方案吗?

问题相关代码
  public Result removePermissions(List<SysPermissions> permissionsList) {
        if (permissionsList.size() == 0) {
            return ResultData.fail(ResultMsg.PARAMS_ERROR);
        }
        // 遍历删除关联数据
        for (SysPermissions sysPermissions : permissionsList) {
            long menuExist = sysPermissionsMapper.selectCount(new QueryWrapper<SysPermissions>()
                    .eq(SysPermissions.PARENT_ID,sysPermissions.getId())
                    .last("limit 1"));
            if (menuExist > 0) {
                List<SysPermissions> menuList = sysPermissionsMapper.selectList(new QueryWrapper<SysPermissions>()
                        .eq(SysPermissions.PARENT_ID,sysPermissions.getId()));
                for (SysPermissions permissions : menuList) {
                    long eventExist = sysPermissionsMapper.selectCount(new QueryWrapper<SysPermissions>()
                            .eq(SysPermissions.PARENT_ID,permissions.getId())
                            .last("limit 1"));
                    if (eventExist > 0) {
                        List<SysPermissions> eventList = sysPermissionsMapper.selectList(new QueryWrapper<SysPermissions>()
                                .eq(SysPermissions.PARENT_ID,permissions.getId()));
                        sysPermissionsMapper.deleteBatchIds(eventList);
                    }
                }
                sysPermissionsMapper.deleteBatchIds(menuList);
            }
        }
        return ResultData.auto(sysPermissionsMapper.deleteBatchIds(permissionsList) > 0);
    }

删除关联有2种方式:1.java代码方式:批量删除或者一条一条删除,首先要有被删除的主键之类的做参数,查询到关联表的主键,然后依次删除关联表数据。2.数据库方式:https://blog.csdn.net/zou666zou/article/details/122752746

你gitee找找别人的代码,你看谁这么写业务逻辑的 - -