mybatis-plus-tenant-support
介绍
mybatisplus 多租户组件增强
pom文件引入点击此处查看最新版本号
<!--基于jdk21,想要低版本的自行下载源码打包-->
<dependency><groupId>com.xiaoyudeguang</groupId><artifactId>mybatis-plus-tenant-support</artifactId><version>${最新版本}</version>
</dependency>
使用说明
1. 实体类中增加一个tenantId字段
@TenantIgnore
@TableName("sys_user")
public class sysUser {@TableField(fill = FieldFill.INSERT)protected String tenantId;
}
2. 请求头增加 tenant_id 字段,SQL将自动拼接tenant_id条件
3. 使用@TenantIgnore注解(关闭SQL自动拼接tenant_id条件)
@TenantIgnore
@TableName("sys_user")
public class sysUser {@TableField(fill = FieldFill.INSERT)protected String tenantId;
}
4. 替换默认租户字段
如果不想用 tenant_id 作为租户字段,可以在yml增加下面的配置以替换为新字段:
mybatis-plus:config:tenant-id-column: ${新的租户字段}
5. 自定义MetaObjectHandler类,新增数据时自动插入 tenant_id 字段值
@Component
public class MybatisMetaObjectHandler implements MetaObjectHandler {@Autowired(required = false)private TenantLineHandler tenantLineHandler;@Overridepublic void insertFill(MetaObject metaObject) {if (tenantLineHandler != null) {this.setFieldValByName(tenantLineHandler.getTenantIdColumn(), tenantLineHandler.getTenantId(), metaObject);}this.setFieldValByName("creator", userNo, metaObject);this.setFieldValByName("created", LocalDateTime.now(), metaObject);this.setFieldValByName("modifier", userNo, metaObject);this.setFieldValByName("modified", LocalDateTime.now(), metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {this.setFieldValByName("modifier", userNo, metaObject);this.setFieldValByName("modified", LocalDateTime.now(), metaObject);}}