春季启动时的多个数据库

时间:2015-07-27 08:40:31

标签: mysql spring rest jpa

我正在使用Spring启动,JPA和mysql for Rest API

我有员工模型,员工控制器,员工服务,员工存储库以及两个数据库db1和db2。

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

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

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

1 个答案:

答案 0 :(得分:0)

在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 Spec本身很好地说明了这一点 http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-eval-spec/index.html