java - 使用 Spring Boot 和 Hibernate 的多租户和中央数据库
问题描述
规格
每个租户都有自己的数据库来更详细地处理用户,并且需要存在一个中央数据库来处理:
- 令牌 (OAuth2)
- 用户(详细程度有限)
- 将用户映射到他们的数据库
问题
我找到了多租户的解决方案,它允许我根据用户确定数据源。但是,我不确定如何将某些 crud 存储库链接到这个中央数据源,而将其他存储库链接到可变数据源。
另一个解决方案涉及更新属性文件,并使用配置服务器(即通过 git)来触发 @RefreshScope 注释的配置。虽然我不确定这是否适用于数据源,或者这是否会在以后导致问题。
额外的上下文
我在这个项目中大量使用 Spring Boot 和 Hibernate。
解决方案
这个博客提供了一个很好的教程来说明如何做到这一点。
经过大量研究,看起来休眠并不是为此而构建的,但是通过自己手动编写模式,我可以使用本机查询将其注入新的租户数据库。
我也遇到了 MS Server DB 的问题,因为它们不允许简单地附加;createDatabaseIfNotExist
到 JDBC URL,这意味着更多的本机查询(移动项目以使用 MySQL,所以这不再是问题。)
推荐阅读
- django - django 从表单中获取值
- c - 为什么在 C 中为数组声明和指向数组声明的指针动态分配的内存不同?
- c++20 - 如何将模板类构造函数作为前向声明
- django - 用 django-hitcount 计算每次点击
- php - Laravel 授权给登录的用户 403
- python - 更改 tkinter LabelFrame 的文本
- python - 如何使用类 Resource 对 flask-restful 进行身份验证?
- python - 在午夜对数据进行分组并使用 pandas 执行操作
- sql - Hive:短时间 DAG 对纱线的简单请求
- javascript - A-Frame & ar.js 200 标记