【问题标题】:Spring-boot JPA connect to postgres where database and schema are provided at runtimeSpring-boot JPA 连接到 postgres,其中在运行时提供数据库和模式
【发布时间】:2016-11-01 01:57:22
【问题描述】:

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

我查看了 spring boot 的 JPA 示例,并在谷歌上搜索了一些合适的解决方案,不幸的是,我找不到。

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    所以不,使用 Spring Boot + Spring Data JPA 组合无法在运行时更新架构。

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

    我以前在这样的系统上工作过,但我们通过 JDBC 使用普通 SQL 查询,并以编程方式创建数据库连接以实现运行时的架构更改。

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 2023-03-23
      • 2020-05-26
      • 2022-01-11
      • 2016-12-17
      • 2018-01-06
      • 2021-10-03
      • 1970-01-01
      • 2015-02-11
      相关资源
      最近更新 更多