problem
If it is multi-level association deletion, is there a good solution ?
Problem related code
public Result removePermissions(List<SysPermissions> permissionsList) { if (permissionsList.size() == 0) { return ResultData.fail(ResultMsg.PARAMS_ERROR); } // Traverse delete associated data 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); }