我正在使用Spring启动,JPA和mysql for Rest API
我有员工模型,员工控制器,员工服务,员工存储库以及两个数据库db1和db2。
在员工控制器中,我将获得company_Id作为参数。
如果company_Id为1,那么我必须使用db1或db2。
如果可能,请分享任何示例代码或链接。
答案 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