persistence.xmlの永続ユニットは、アプリケーションの構築中に作成されます。実行時にデータベースURLを変更したいので、実行時に永続性ユニットを変更する方法はありますか?私は配布後に事前バインドされたデータベース以外の別のデータベースを使用することになっていました。私はあなたがプラグイン・フレームワークを作成する必要があり、長命のセッションのアーキテクチャでのEclipseLink(JPA 2.1)永続ユニットを動的に変更する - JPA
12
A
答えて
25
永続性ユニットファイル(Persistence.xml)はそのままです。次のようにプロパティをオーバーライドすることができます。
EntityManagerFactory managerFactory = null;
Map<String, String> persistenceMap = new HashMap<String, String>();
persistenceMap.put("javax.persistence.jdbc.url", "<url>");
persistenceMap.put("javax.persistence.jdbc.user", "<username>");
persistenceMap.put("javax.persistence.jdbc.password", "<password>");
persistenceMap.put("javax.persistence.jdbc.driver", "<driver>");
managerFactory = Persistence.createEntityManagerFactory("<current persistence unit>", persistenceMap);
manager = managerFactory.createEntityManager();
0
を使用してい
。
したがって、別のスレッドグループとクラスリポジトリを作成する必要があります。
これは、システム・クラス・ローダー(通常のURLClassLoader、Entitysが含まれています)
- あなたのクラスローダツリーかもしれません
- JPA-クラスローダ
- あなたJPAをロードします.jarを
persistence.xml
とし、アプリケーションクラスローダからデータベースコンフィグレーションを指定してください。 - entityManager/session-factoryをインスタンス化してください。
- データベースで作業する必要があるプラグインを読み込みます。ユニットテスト(D)とプラグイン統合テストを実行します。
- あなたJPAをロードします.jarを
- JPA-クラスローダ
2
あなたは、データベースのURLとその他の設定を選択するプロパティを渡すためにPersistence.createEntityManagerFactory(地図)を使用することができます。
+0
いいですね。私はこれを試してみましょう。 –
関連する問題
- 1. JPA動的永続ユニットの名前
- 2. EJB-JPA永続性ユニット
- 3. persistence.xml複数の永続ユニット
- 4. 永続ユニットの複数のログイン?
- 5. mysqlのJava永続ユニット
- 6. JPAカスケード永続エラー
- 7. MSBuild:プロジェクトのPropertyGroupプロパティを永続的に変更する
- 8. 永続ユニットごとにHibernate/JPAでdiffernet import.sqlを実行するにはどうすればよいですか?
- 9. 休止状態はSchemaExportと永続ユニット
- 10. 変更が永続的になるようにリストを追加するには?
- 11. TempData 1つのページに永続的に永続化する
- 12. JPA @OneToManyは異なる永続性ユニットにまたがって結合します
- 13. Numpy:numpy.ndarray.viewを使用すると永続的に変更されますか?
- 14. Oracleデータベースの障害後に永続性ユニットに再接続する方法
- 15. jpa 2.0永続性:ジレンマの作成と更新
- 16. 永続的接続を作成する
- 17. JPA 2でHibernateを強制的に推移させる永続性の順序?
- 18. JPA 2とHibernateで拡張永続コンテキストタイプ
- 19. エンティティElementCollectionキーでJPAのカスケード永続
- 20. JPAの永続2Dブール値配列(openJPA)
- 21. JPA ManytoOneと永続ないOneToMany関係
- 22. NHibernateは承認のためにオブジェクトを永続的に変更します
- 23. Intellij IDEA永続的な変更リスト(コミット後)?
- 24. javascriptを使用して永続的にhtml値を変更しますか?
- 25. iOS永続的通知/クイック起動
- 26. 永続的な列の型変換
- 27. Google Compute/Cloud ServerをSSD永続ディスクに変更する
- 28. Hibernate:永続的なコレクションに永続クラスを再利用
- 29. PHPと永続的接続
- 30. JPA&RequestFactory:私は私のJPAエンティティクラスの外部キーの永続
どのサーバーを使用していますか? –
Nop。それはスタンドアロンのアプリケーションです。データベースサーバーはOracle-12cとSQL Server 9.0.xです。 –