关于删除租户场景下的问题,求解答一下

Blade 未结 2 1361
愚蠢的欧豆豆
愚蠢的欧豆豆 2020-06-05 16:19

一、该问题的重现步骤是什么?

1. 2.5.0版本支持    超级管理员  删除租户后同时删除对应用户,对应方法:

boolean userTemp = userService.remove(Wrappers.query().lambda().in(User::getTenantId, tenantIds));
执行的sql是:UPDATE blade_user SET is_deleted = 1 WHERE is_deleted = 0 AND (tenant_id IN (990556));
但是同理,我还需要清除其他几个租户关联表 ,执行的sql却是:
UPDATE tb_student SET is_deleted = 1 WHERE  AND is_deleted = 0 AND (tenant_id IN (?)),
我的疑惑是是不是什么地方对blade_user 表做了处理?为什么其他的表还是拼接sql 而blade_user 不需要?

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?

我想要000000租户下删除表数据时不拼接

tb_student.tenant_id = '000000'

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

boot版本 + saber  linux

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  smallchill
    smallchill (楼主)
    2020-06-05 16:43

    user表是因为排除了租户插件,所以才可以自定义条件。如果你的表在租户插件逻辑内,是无法自定义条件的。

    我觉得只要删除几个核心业务的租户表就够了,其他删不删无所谓。另外如果一些业务表数据量千万级别,删一下不得了的事。

    所以只删几个核心的就行,其他的业务数据不用去管

提交回复