2011-01-27 2 views
1

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

Благодаря

+0

Можно ли перезагрузить веб-сервер для этого? – bert

ответ

2

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

+0

Позволит ли это записывать эти новые параметры в блок персистентности, чтобы они стали значениями по умолчанию? – sldahlin

1

Вы должны указать информацию о соединении 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.

Смежные вопросы