【问题标题】:Multiple database in spring bootSpring Boot中的多个数据库
【发布时间】:2015-07-27 08:40:31
【问题描述】:

我正在使用 Spring boot、JPA 和 mysql 作为 Rest API

我有 Employee 模型、Employee Controller、Employee Service、Employee Repository 和两个数据库 db1 和 db2。

在员工控制器中,我将获得 company_Id 作为参数。

如果 company_Id 为 1,那么我必须使用 db1 或 db2。

如果可能,请分享任何示例代码或链接。

【问题讨论】:

  • 我想你没有正确地阐述你的要求。请给出一些适当的描述,以便社区用户提出对您有用的建议或提供适当的方法来消除您的困惑。

标签: mysql spring rest jpa


【解决方案1】:

在您的 persistence.xml 中,您可以定义 2 个持久性单元

<persistence>
    <persistence-unit name="EmployeeController">
    -- Data source, properties etc.
        <jta-data-source>jdbc/MyEmployeeDB</jta-data-source>
    </persistence-unit>

    <persistence-unit name="EmployeeControllerCompany1">
    -- Data source, properties etc.
        <jta-data-source>jdbc/MyEmployeeCompany1DB</jta-data-source>
    </persistence-unit>
<persistence>

因此,根据您的company_Id 是否为 1,您将调用不同的服务。在处理company_Id == 1 的服务中,您检索一个引用相关持久性单元的实体管理器

EntityManagerFactory emf =
javax.persistence.Persistence.createEntityManagerFactory("EmployeeControllerCompany1");
EntityManager em = emf.createEntityManager( );

JPA 规范本身很好地描述了这一点 http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-eval-spec/index.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 2019-10-28
    • 1970-01-01
    • 2018-02-05
    • 2019-02-14
    • 2019-01-13
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多