Как включить обмен параметров соединения БД с EclipseLink / JPA - PullRequest
1 голос
/ 28 января 2011

У нас есть проекты различных типов, такие как серверный Java-процесс и внешнее приложение Tomcat, которые в настоящее время используют EclipseLink / JPA и persistence.xml для получения информации о подключении к БД.Есть ли способ, позволяющий динамически изменять эти параметры, скажем, в случае, если внутренняя база данных была перемещена на другой сервер.Файл persistence.xml упакован в банку и не может быть изменен напрямую.Я вижу различные темы, которые говорят о динамическом постоянстве, но ничего не касаются этой конкретной темы.Есть ли где-нибудь, что документирует это конкретно с любыми примерами?

Спасибо

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Если ваш постоянный контекст управляется приложением (т. Е. Вы используете Persistence.createEntityManagerFactory(persistenceUnitName) для его получения), вы можете переопределить свойства из persistence.xml, передав свои пользовательские свойства через createEntityManagerFactory(persistenceUnitName, properties).

1 голос
/ 29 января 2011

Что вам нужно сделать, это поместить информацию о соединении 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...