Hibernate中的多租户使用Schema和Database

时间:2017-08-02 11:28:14

标签: java database hibernate spring-boot multi-tenant

该应用程序有两个独立的数据库,例如:

  • DB1
  • DB2

和不同公司的数据库分为两个数据库,如:

  • DB1
    • 公司1
    • 公司2
    • 公司3
    • 公司4
  • DB2
    • 公司5
    • 公司6
    • 公司7
    • 公司8

如何在hibernate中配置这样的场景? 所有示例都涉及基于模式的多租户或数据库多租户。

有没有办法配置这样的场景?

3 个答案:

答案 0 :(得分:0)

为此,您应该在配置文件中创建两个sessionFactory Bean。在您的DAO层中,您可以使用限定符注释来调用它。

答案 1 :(得分:0)

您必须创建自己的MultiTenantConnectionProvider实现,以处理数据库和架构级别的多租户。那应该是阻力最小的道路。

这里有一些关于与spring,hibernate和自定义多租户战斗的稍微过时的信息:Setting up a MultiTenantConnectionProvider using Hibernate 4.2 and Spring 3.1.1

答案 2 :(得分:0)

我将使用单独的数据库获取策略,并在 ConnectionProvider 覆盖方法 getConnection() 中设置架构。 在这种情况下,我可以更改数据库并为租户选择特定的架构。