【问题标题】:JPA one web application using several databasesJPA 一个使用多个数据库的 Web 应用程序
【发布时间】:2017-12-10 21:51:16
【问题描述】:

我必须使用 Java EE (Servlet/JPA) 开发一个 Web 应用程序,该应用程序将被多个客户使用,每个客户都有自己的数据库。当然所有的数据库都有相同的结构。

所以我的问题是:
JPA 应用程序是否可以访问多个数据库?

【问题讨论】:

  • 一个 EntityManagerFactory 连接到一个数据库。基于这个事实,你如何在你的情况下使用 JPA 应该是显而易见的,不是吗?
  • 谢谢,EntityManagerFactory 似乎是动态获取 EntityManager 解决方案的开始
  • 我测试了,交易有问题,好像不是很好的解决办法

标签: jpa


【解决方案1】:

答案是可以的。您的 persistence.xml 中需要多个持久性单元。

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="one" transaction-type="JTA">
    ...
</persistence-unit>

<persistence-unit name="two" transaction-type="JTA">
    ...
</persistence-unit> 

您还需要告诉您的 EJB 使用特定的持久性单元

@PersistenceContext(unitName="...")

【讨论】:

  • 谢谢,但每次添加客户端和他的数据库时,我都必须修改和重新部署应用程序,我希望我不必这样做!
猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
  • 2011-10-26
相关资源
最近更新 更多