【问题标题】:How do manage multiiple transaction managers (for multi-tenancy) in Spring Data JPA如何在 Spring Data JPA 中管理多个事务管理器(用于多租户)
【发布时间】:2019-01-24 16:02:03
【问题描述】:

我们使用 Spring BootSpring Data JPA 以及 Transactional 注释来管理事务。

但是,我们有一个多租户应用程序,对于非常大的客户,我们需要将它们放在单独的专用数据库中。

有没有什么方法可以拦截 TransactionalAnnotation 使用的 TransactionManager 并根据请求动态覆盖它(取决于哪个租户正在更新)?

【问题讨论】:

  • 这可能对tech.asimio.net/2017/01/17/…有帮助
  • 您不必(也不应该)担心使用 Spring Transactions 开发的多租户应用程序中的TransactionManager。相反,您应该确保对于每个操作,JPA EntityManager 可以访问与该操作关联的租户的正确 DataSource。当使用 Hibernate 作为 JPA 提供者时,如果可以正确识别租户,则有几种策略可以为操作找到正确的 DataSource。有关示例,请参阅 this post

标签: java spring spring-data-jpa spring-data


【解决方案1】:

这是一个非常有用的link,可以满足您的需要,使用spring data Jpa在spring boot中实现多租户, 它将租户列表保存在主(公共)数据库中,Hibernate 管理多租户数据源(每个租户单独的数据库)。

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 1970-01-01
    • 2018-10-24
    • 2010-09-09
    • 2017-12-23
    • 1970-01-01
    • 2016-12-13
    • 2023-04-10
    • 2012-08-04
    相关资源
    最近更新 更多