public void update(Role role) { // TODO Auto-generated method stub mapper.update(role); // 清除中间表信息 mapper.deleteRolePermission(role.getId()); // 保存中间表 saveRolePermission(role); }
/** * 保存角色和权限的关联(中间表)信息 * * @param role */ private void saveRolePermission(Role role) { // 获取待添加的权限 List<Permission> permissions = role.getPermissions(); // 判断是否有关联权限 if (permissions != null && !permissions.isEmpty()) { Long roleId = role.getId(); // 声明集合 List<RolePermission> list = new ArrayList<>(); // 遍历 for (Permission permission : permissions) { // 新建关联对象 RolePermission link = new RolePermission(); link.setRoleId(roleId); link.setPermissionId(permission.getId()); // 把新关联信息添加到集合中 list.add(link); } // 保存关联信息 mapper.saveRolePermission(list); } }