## 前言 * 天朝的需求千变万化,很多需求已经超出了多租户系统本身逻辑的存在 * 针对这种情况,BladeX提供两种排除方法,其中一种为部分生效部分排除,满足大家复杂的需求 ## 全局排除 1. 实体类不继承TenantEntity或者没有tenantId字段,则会自动排除不会纳入多租户插件 2. 在配置文件单独配置exclude-tables,底层租户插件则会对其进行排除 ~~~yaml # 租户表维护 blade: #多租户配置 tenant: #多租户对应字段 column: tenant_id #排除多租户逻辑 exclude-tables: - tb_news - tb_goods ...................... ~~~ ## 局部排除 1. 在某些特殊的业务场景,某个表需要做租户过滤,但是这个表的某几个小模块不需要租户过滤 2. 若全局排除这个表,其他所有逻辑都自己手动实现,那会很麻烦 3. 所以我们提供了相对便捷的方式,在不需要租户过滤的API或者Controller上加上`@TenantIgnore`注解就可以了 4. 具体使用如下 ~~~java @TenantIgnore @GetMapping("/list") public R> list(@ApiIgnore @RequestParam Map notice, Query query) { IPage pages = noticeService.page(Condition.getPage(query), Condition.getQueryWrapper(notice, Notice.class)); return R.data(NoticeWrapper.build().pageVO(pages)); } ~~~ 注意⚠️:`@TenantIgnore`注解仅仅是不参与tenant_id字段过滤,租户配置的单独数据库还是会生效的,与`@NonDS`的作用不一致。打上`@NonDS`注解后,就不会进行租户单独数据库切换,会直接变成master数据源操作,这一块大家需要注意一下。