MyBatis-Plus 多租户实现

本贴最后更新于 442 天前,其中的信息可能已经水流花落

MyBatis-Plus 有多租户模式,可以实现很方便实现一些功能,一开始使用的时候,我觉得这个很好,但是深入了解后又觉得这个设计目前还是有一定的局限性,我的理解是多租户模式是专门针对隔离数据这一种模式而实现的,不要把这种模式扩展开来去使用,滥用的结果就是全局控制和局部控制有可能会相矛盾,单人开发的时候,这个问题还能接受,多人开发的时候,就会引发严重的冲突。
目前多租户模式还不支持全局设定 null 为 is null 来拼接 where 条件,这个也使多租户模式和无租户模式数据很难兼容在一起。
无租户模式可以看做是租户 id 为 null 的情况。
多租户模式可以看成是租户 id 不为 null 的情况。
目前多租户模式的设计只能做到让租户 id 不为 null 的数据做完全的隔离,记下这个坑,希望看到这篇文章的可以更早的意识到这个坑,绕过去。
使用详见:

  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 Google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    150 引用 • 404 回帖 • 691 关注
  • 多租户
    4 引用 • 24 回帖
1 操作
qiankunpingtai 在 2019-05-21 16:54:57 更新了该帖

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250 1 赞同

    为啥不把“无租户”场景的租户 id 设置为一个常量?这样不是就统一了么。

    1 回复
  • qiankunpingtai

    这样也可以,把无租户看成是多租户模式下一个特定的租户,不过历史数据需要做特定修改了!这个是一种变通的思路。要是 mybatis-plus 可以全局设定指定名称字段为空时使用 is null 就很理想了,可以应用于更多场景。

  • Angonger

    租户数据源不隔离的吗

    1 回复
  • qiankunpingtai

    一个小规模的租户一年十万条左右的流水就差不多了,数据源隔离该有多浪费资源呢!