【发布时间】:2023-04-01 15:06:02
【问题描述】:
应用程序有 2 个独立的数据库,例如:
- DB1
- DB2
不同公司的数据库分布在这两个数据库中,例如:
- DB1
- 公司 1
- 公司2
- 公司 3
- 公司 4
- DB2
- 公司5
- 公司6
- 公司7
- 公司 8
如何在hibernate中配置这样的场景? 所有示例均指基于模式的多租户或数据库多租户。
有没有办法配置这样的场景?
【问题讨论】:
-
只使用数据库多租户不是更容易吗?基于模式的多租户适用于较小的数据集,但将两者结合起来并不值得。相反,您将拥有
Server1和Server2(假设您有多个数据库服务器),每个都有 4 个公司数据库。 -
@Kayaman 数据库结构已经定义,这是一个现有的应用程序。我无法改变这一点。
-
配置两个
DataSources,一个用于DB1,另一个用于DB2。创建AbstractRoutingDataSource的两个实现 - 一个允许为当前客户端选择 DB1 的数据源;另一个允许为 DB2 选择数据源。最后,创建AbstractRoutingDataSource的第三个实现,允许为当前客户端选择其他两个AbstractRoutingDataSource实现之一。链接的博客包含所需的所有信息。
标签: java database hibernate spring-boot multi-tenant