具有Spring Boot和Hibernate的多租户和中央数据库

时间:2018-05-23 17:16:47

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

规范

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

  • 代币(OAuth2)
  • 用户(详细程度有限)
  • 将用户映射到他们的数据库

问题

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

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

额外上下文

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

1 个答案:

答案 0 :(得分:0)

This blog提供了一个非常好的教程,说明如何做到这一点。

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

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