一、配置类
1、MP实现TenantLineHandler类,定义租户过滤规则。可配置单个租户Id过滤、租户字段、忽略表。启动时租户Id为空会报错;
2、MF实现TenantFactory类定义过滤规则。可配置多个租户Id、通过字段注解配置租户字段,没有忽略表配置项。租户Id为空时忽略租户条件。
二、自定义Mapper
1、对于自定义实现的Mapper,MP默认会为其添加租户过滤条件。若要忽略租户条件,需在自定义Mapper接口加上`@InterceptorIgnore(tenantLine = "true")`注解;
2、对于自定义实现的Mapper,MF默认不会为其添加租户条件。如需过滤租户,需要自己手动加上租户过滤条件。
三、公共API
1、对于框架提供的默认API,MP不允许忽略租户条件。如需忽略租户只能配置全表忽略,或自定义Mapper手写SQL忽略;
2、框架默认提供的API,可通过`withoutTenantCondition`等方法忽略租户条件。例如:
1 List<SysUser> sysUsers = TenantManager.withoutTenantCondition(sysUserRepository::list) 2 3 try { 4 TenantManager.ignoreTenantCondition(); 5 List<SysUser> sysUsers2 = sysUserRepository.list(QueryWrapper.create().where(SYS_USER.ID.eq(1)));7 } finally { 8 TenantManager.restoreTenantCondition(); 9 }
3、新增/编辑,MF强制绑定了当前租户Id,无法使用`ignoreTenantConfition`忽略租户,除非置空tenantId;MP未知。