【发布时间】:2021-11-19 05:04:30
【问题描述】:
我有一个应用程序,用 JEE、JPA 编写,我使用 Payara 作为应用程序服务器。
在我的应用程序的 persistence.xml 中
<persistence-unit name="XYZ" transaction type="JTA" >
在 payara 方面,我有一个名为 XYZ 的 JDBC 资源,带有 JDBC 连接池。 应用程序使用的数据库专用于一位客户。
现在我想将此应用程序(未更改)部署给其他客户(在同一台服务器上),每个客户都需要单独的数据库。为了实现这一点,我需要为每个客户修改持久化单元名称并重新编译应用程序,当然,还要在 Payara 端定义 JDBC。
我想以某种方式让这个持久性单元名称是动态的,因此我不必为每个客户重新编译应用程序。有什么简单的方法可以实现吗? 在最坏的情况下,我可以只修改编译好的war文件中的persistence.xml,但我希望有一个更优雅的解决方案。
请告知如何解决该问题。
【问题讨论】:
-
也许您可以在每次部署时将相同的数据源名称映射到不同的数据库,从而无需更改持久性单元名称?
标签: jpa jakarta-ee jta payara persistence.xml