公司的老项目要改造多租户,于是进入了大坑,本文写点遇到的坑以及解决方案,每次遇到问题在网上搜了好久,记录下来,防止以后忘掉。
(一).方案
网上有很多方案,本文只写最后一种,即:表增加租户id,实现数据隔离
方案一:增加租户id,在每一个mapper调用的地方,都手工加上租户id
例如:
LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Entity::getTenantId,"tenantId");
entityMapper.selectList(lambdaQueryWrapper);
复制代码
这种方式复杂,工作量大,且容易漏。没有采用
方案二:使用mp官方的多租户插件,此处代码省略,自行去官方文档上查询
(二).官方多租户的方案的优化和坑
采用了官方文档的多租户插件后,前期调试很顺利,crud 都自测过了,以为没有问题了,于是就发测试环境了,但是随着测试的深入,发现了好多问题和需要改动的地方,此处列举:文章来源:https://www.toymoban.com/news/detail-645882.html
1.分析哪些需要加多租户,哪些不需要加
(1)租户id的重写 官方的默认重写方法是:文章来源地址https://www.toymoban.com/news/detail-645882.html
@Override
public Expression getTenantId() {
return null;
}
复制代码
到了这里,关于Mybatis plus 多租户方案踩坑记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!