一、配置类

  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未知。