【问题标题】:Spring Data JPA repository multi-tenant single schema techniqueSpring Data JPA 存储库多租户单模式技术
【发布时间】:2013-03-12 02:27:20
【问题描述】:

我刚刚开始使用 Spring 应用程序,该应用程序当前正在使用带有 jpa 存储库的 spring 数据。我计划将该应用程序作为使用单个数据库模式的多租户应用程序。我想弄清楚的是将租户 ID 附加到每个查询的最佳方法。当然,我可以在存储库中编写每个查询以期望租户 id 参数并从本地线程或类似线程中获取租户 id,但我想知道在这种情况下是否有更好的技术?也许有一种我还没有遇到过的更具声明性的方式来做到这一点。

【问题讨论】:

    标签: java hibernate jpa multi-tenant spring-data


    【解决方案1】:

    您正在使用 Spring JPA 而不是一些 JPA 实现(Hibernate、EclipseLink 等)。因此,您需要在 JPA 提供者级别配置多租户。对于休眠 - see here

    您也可以检查替代方式 - this(警告:里面有俄语)

    【讨论】:

    • 我正在使用 hibernate,但 hibernate 直到 5.0 才支持多租户的鉴别器方法,所以我可能暂时需要推出自己的解决方案。
    • 如果我错了,请纠正我,但我认为你的答案归结为:使用休眠过滤器。乍一看,似乎没有一个好的生命周期方法或类似方法可以实现来访问休眠会话并动态决定我是否应该应用过滤器。您链接的文章扩展了 HibernatePersistence,如果您想为每个查询应用过滤器,这似乎是一个不错的方法。我可能不需要对 100% 的查询应用过滤器,也许我应该考虑扩展基本存储库。
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2016-05-03
    • 2019-01-23
    • 2018-08-06
    • 2015-04-07
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多