J2EE - JPA中不同数据库的多个数据库连接

时间:2017-11-13 09:38:09

标签: hibernate jpa java-ee orm

我有一个应用程序,它在不同的地理位置使用许多数据库。所有数据库都包含相同的表,并且只有数据库名称根据位置而不同。我必须在我的应用程序中创建一些使用每个数据库中数据的统计和监控图表。

使用JSF和JPA从WEB java应用程序创建这些数据库连接的正确方法是什么。

1 个答案:

答案 0 :(得分:2)

您可以在persistence.xml文件中定义更多持久性单元

<persistence-unit name="pu1" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value=""/>
<property name="javax.persistence.jdbc.user" value=""/>
<property name="javax.persistence.jdbc.password" value="/>
</properties>
</persistence-unit>

<persistence-unit name="pu2" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value=""/>
<property name="javax.persistence.jdbc.user" value=""/>
<property name="javax.persistence.jdbc.password" value="/>
</properties>
</persistence-unit>

现在它取决于你是使用像TomEE或容器(Tomcat)这样的完整应用服务器。

@PersistenceContext(unitName = "pu1")
private EntityManager em;

@PersistenceContext(unitName = "pu2")
private EntityManager em2;

否则:

 Persistence.createEntityManagerFactory("pu1");
 Persistence.createEntityManagerFactory("pu2");