Spring-boot JPA连接到postgres,其中数据库和模式在运行时

时间:2016-06-29 11:28:55

标签: spring postgresql jpa spring-boot spring-data

我正在构建一个多租户应用程序,其中租户数据库配置存储在Redis中。根据请求,我将查询Redis以获取为该租户配置的数据库和架构,此应用程序基于spring boot构建。

我看了一下spring boot的JPA样本,并做了一些google为此寻找合适的解决方案,遗憾的是,我找不到一个。

这真的可以使用此处提供的JPA示例吗? https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-jpa

请建议我解决此问题的其他最佳方法

由于

1 个答案:

答案 0 :(得分:1)

Spring Data JPA使用JPA注释来定义域模型。这些JPA实体定义数据库的模式。显然,您无法在运行时更改这些实体,也无法更改DB模式。

所以不,Spring Boot + Spring Data JPA组合无法在运行时更新模式。

数据库连接(例如DB URL,用户名密码)可以更灵活。您需要以编程方式创建DataSource bean,并以某种方式以编程方式定义每个租户的每个查询使用哪个数据源。但这并不是Spring和JPA生态系统的要求,因此您可能会遇到很多问题。

之前我正在研究这样的系统,但是我们通过JDBC使用普通的SQL查询,并以编程方式创建数据库连接,以便在运行时实现模式更改。