多数据源查询时,在切换后的数据源执行查询基础表blade_data_scope

Blade 已结 1 1284
asit
asit 剑圣 2021-08-29 17:50
悬赏:10

多数据源,在mapper类里面使用@DS切换数据源查询时,会提前查询blade_data_scope,在切换目标数据库没有基础表结构,如何解决?谢谢


image.pngimage.pngimage.pngimage.pngimage.png

1条回答
  •  admin
    admin (最佳回答者)
    2021-08-30 21:24

     1. 如果用的boot版本,需要复制拷贝一份BladeScopeModelHandler,比如命名为BladeScopeModelHandlerMaster,拷贝到boot工程一个用于生效配置类的包。然后在类上加上DS("master")的注解。同时再到config类初始化,这样逻辑就会走自定义的这个数据权限查询类,也就只会锁定到master库来查询了。

    @DS("master")
    @RequiredArgsConstructor
    public class BladeScopeModelHandlerMaster implements ScopeModelHandler {
    ......
    }
    @Configuration(proxyBeanMethods = false)
    public class BladeScopeConfiguration {
        @Bean
        public ScopeModelHandler scopeModelHandler() {
           return new BladeScopeModelHandlerMaster(jdbcTemplate);
        }
    }

     2. 如果用的cloud版本,则在对应服务引入blade-scope-api便可

     3. 更多说明请看:https://sns.bladex.cn/q-591.html


    1 讨论(1)
提交回复