赞
踩
- @Configuration
- public class MyBatisPlusConfig {
- /**
- * 分页插件
- *
- * @return
- */
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
-
- // 创建SQL解析器集合
- List<ISqlParser> sqlParserList = new ArrayList<>();
-
- // 创建租户SQL解析器
- TenantSqlParser tenantSqlParser = new TenantSqlParser();
-
- // 设置租户处理器
- tenantSqlParser.setTenantHandler(new TenantHandler() {
- @Override
- public Expression getTenantId() {
- // 设置当前租户ID,实际情况你可以从cookie、或者缓存中拿都行
- return new StringValue("jiannan");
- }
-
- @Override
- public String getTenantIdColumn() {
- // 对应数据库租户ID的列名
- return "tenant_id";
- }
-
- @Override
- public boolean doTableFilter(String tableName) {
- // 是否需要需要过滤某一张表
- /* List<String> tableNameList = Arrays.asList("sys_user");
- if (tableNameList.contains(tableName)){
- return true;
- }*/
- return false;
- }
- });
-
- sqlParserList.add(tenantSqlParser);
- paginationInterceptor.setSqlParserList(sqlParserList);
-
- return paginationInterceptor;
- }
- }
1、配置后所有sql将会默认带上租户id
2、如果部分sql无需带上租户id,可使用注解,如
- /**
- * 用户 Mapper 接口
- */
- public interface UserMapper extends BaseMapper<User> {
-
- /**
- * 自定Wrapper修改
- *
- * @param userWrapper 条件构造器
- * @param user 修改的对象参数
- * @return
- */
- @SqlParser(filter = true)
- int updateByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper, @Param("user") User user);
-
- }
- # 开启 SQL 解析缓存注解生效,如果你的MP版本在3.1.1及以上则不需要配置
- mybatis-plus:
- global-config:
- sql-parser-cache: true
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。