2011-01-27 5 views
1

現在、EclipseLink/JPAとpersistence.xmlを使用してdb接続情報を取得するバックエンドJavaプロセスやフロントエンドTomcatアプリケーションなど、さまざまなタイプのプロジェクトがあります。バックエンドデータベースが別のサーバに移動された場合など、これらのパラメータを動的に変更できるようにする方法はありますか? persistence.xmlはjarファイルにパッケージ化されており、直接変更することはできません。私は、ダイナミックな永続性について話すさまざまなスレッドを見ていますが、この特定のテーマについては何もありません。これは具体的に例を挙げて文書化されていますか?EclipseLink/JPAでdb接続パラメータを交換する方法

おかげ

+0

これはウェブサーバーを再起動しても問題ありませんか? – bert

答えて

2

あなたの永続コンテキストは、アプリケーション管理(すなわち、あなたはそれを得るためにPersistence.createEntityManagerFactory(persistenceUnitName)を使用)である場合は、createEntityManagerFactory(persistenceUnitName, properties)を経由して、カスタムプロパティを渡すことによってpersistence.xmlからプロパティをオーバーライドすることができます。

+0

これらの新しいパラメータを永続ユニットに書き込んでデフォルトにすることができますか? – sldahlin

1

する必要があるのは、persistence.xmlファイルの代わりにアプリケーションサーバーにJDBC接続情報を入れることです。

このように、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ファイルを変更せずに接続情報を更新することができます。

関連する問題