首页 > 解决方案 > 使用 Spring Boot 和 Hibernate 的多租户和中央数据库

问题描述

规格

每个租户都有自己的数据库来更详细地处理用户,并且需要存在一个中央数据库来处理:

问题

我找到了多租户的解决方案,它允许我根据用户确定数据源。但是,我不确定如何将某些 crud 存储库链接到这个中央数据源,而将其他存储库链接到可变数据源。

另一个解决方案涉及更新属性文件,并使用配置服务器(即通过 git)来触发 @RefreshScope 注释的配置。虽然我不确定这是否适用于数据源,或者这是否会在以后导致问题。

额外的上下文

我在这个项目中大量使用 Spring Boot 和 Hibernate。

标签: javadatabasehibernatespring-bootmulti-tenant

解决方案


这个博客提供了一个很好的教程来说明如何做到这一点。

经过大量研究,看起来休眠并不是为此而构建的,但是通过自己手动编写模式,我可以使用本机查询将其注入新的租户数据库。

我也遇到了 MS Server DB 的问题,因为它们不允许简单地附加;createDatabaseIfNotExist到 JDBC URL,这意味着更多的本机查询(移动项目以使用 MySQL,所以这不再是问题。)


推荐阅读