首先,你得明白多租户的概念,假设你已经明白。比如现在系统中有个订单表,这个是很多商户共用的。现在需要给各个商户提供某些功能:如查询他们商户下所有订单。需要写类似SQLSELECT * FORM order WHERE tenan_id = 123现在还需要给总运营平台提供某些功能:如查询平台所有商户的订单。需要类似SQLSELECT * FORM order假如现在又有收货地址,积分等等表,里面都有tenan_id来标识商户ID。此时SQL都需要添加一个参数,那就是tenan_id = 123。MyBatis-Plus的TenantLineInnerInterceptor可以帮我们自动完成tenan_id = 123拼接。但是比如 用户表 这种,是不要拼接的。这时有两种解决方式:在设置拦截器时,将用户表排查,不使用插件在具体Mapper中的方法上,添加SqlParser注解,当然该注解已被废弃,最新的使用InterceptorIgnore。这样设置后,该方法生成的SQL便不会被拼接tenan_id = 123多租户示例项目:https://gitee.com/baomidou/my...
首先,你得明白
多租户
的概念,假设你已经明白。比如现在系统中有个订单表,这个是很多商户共用的。
现在需要给各个商户提供某些功能:如查询他们商户下所有订单。需要写类似SQL
SELECT * FORM order WHERE tenan_id = 123
现在还需要给总运营平台提供某些功能:如查询平台所有商户的订单。需要类似SQL
SELECT * FORM order
假如现在又有收货地址,积分等等表,里面都有
tenan_id
来标识商户ID。此时SQL都需要添加一个参数,那就是tenan_id = 123
。MyBatis-Plus的
TenantLineInnerInterceptor
可以帮我们自动完成tenan_id = 123
拼接。但是比如用户表
这种,是不要拼接的。这时有两种解决方式:用户表
排查,不使用插件SqlParser
注解,当然该注解已被废弃,最新的使用InterceptorIgnore
。这样设置后,该方法生成的SQL便不会被拼接tenan_id = 123
多租户示例项目:https://gitee.com/baomidou/my...