如何使用 EclipseLink/JPA 启用交换数据库连接参数

发布于 2024-10-14 19:50:43 字数 226 浏览 3 评论 0原文

我们有各种类型的项目,例如后端 java 进程和前端 tomcat 应用程序,当前使用 EclipseLink/JPA 和 persistence.xml 来获取数据库连接信息。有没有办法允许动态更改这些参数,例如在后端数据库已移动到另一台服务器的情况下。 persistence.xml 打包在 jar 中,不能直接修改。我看到各种讨论动态持久性的线程,但没有讨论这个特定主题。有没有地方用任何例子专门记录这一点?

谢谢

We have projects of various types such as a backend java process and a front-end tomcat app that currently use EclipseLink/JPA and persistence.xml to get the db connection info. Is there a way to allow for those parameters to be dynamically changed, say in the case that the backend db has been moved to another server. The persistence.xml is packaged in the jar and is not directly modifiable. I see various threads that talk about dynamic persistence but nothing on this particular theme. Is there somewhere that documents this specifically with any examples?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素衣风尘叹 2024-10-21 19:50:43

如果您的持久性上下文是应用程序管理的(即您使用Persistence.createEntityManagerFactory(persistenceUnitName) 来获取它),您可以通过传递自定义属性来覆盖persistence.xml 中的属性通过createEntityManagerFactory(persistenceUnitName,属性)。

If your persistence context is application-managed (i.e. you use Persistence.createEntityManagerFactory(persistenceUnitName) to obtain it), you can override properties from persistence.xml by passing your custom properties via createEntityManagerFactory(persistenceUnitName, properties).

千里故人稀 2024-10-21 19:50:43

您应该做的是将 JDBC 连接信息放在应用程序服务器中,而不是放在 persistence.xml 文件中。

因此,像这样设置 persistence.xml 文件。

<persistence version="2.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_2_0.xsd">
    <persistence-unit name="JPATest" transaction-type="JTA">
        <jta-data-source>jdbc/MyDBDS</jta-data-source>
        <class>...</class>
    </persistence-unit>
</persistence>

然后将应用程序服务器配置为具有名为 jdbc/MyDBDS 的数据库连接。然后,您可以在需要时更新连接信息,而无需更改 persistence.xml 文件。

What you should do is put the JDBC connection information in the application server instead of the persistence.xml file.

So, setup your persistence.xml file like this.

<persistence version="2.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_2_0.xsd">
    <persistence-unit name="JPATest" transaction-type="JTA">
        <jta-data-source>jdbc/MyDBDS</jta-data-source>
        <class>...</class>
    </persistence-unit>
</persistence>

Then configure your application server to have a database connection named jdbc/MyDBDS. You can then update the connection information whenever you need to without changing the persistence.xml file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文