MyBatis Flex与MyBatis Plus多租户使用上的区别

发布时间 2023-09-06 17:56:14作者: TerryJohnson

一、配置类

  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)