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. JPAの複数永続性永続ユニットとJTAトランザクション
- 4. persistence.xml複数の永続ユニット
- 5. 永続ユニットの複数のログイン?
- 6. JBPM 6.4プロジェクトの永続ユニット
- 7. mysqlのJava永続ユニット
- 8. JPAカスケード永続エラー
- 9. 永続性ユニットのJPA EntityManagerFactoryを「デフォルト」に設定しない方法
- 10. ノードjの永続的なロケール変更
- 11. C#の動的永続的
- 12. MSBuild:プロジェクトのPropertyGroupプロパティを永続的に変更する
- 13. SQLiteの変更を永続的に保持する
- 14. JPA OneToOne永続性にnullを渡す
- 15. Hibernate JPA永続例外
- 16. Spring StateマシンJPA永続性
- 17. 永続ユニットごとにHibernate/JPAでdiffernet import.sqlを実行するにはどうすればよいですか?
- 18. Kubernetesの動的永続ボリューム
- 19. 休止状態はSchemaExportと永続ユニット
- 20. Netbeans persistence.xml - 永続ユニットのパスの定義
- 21. 複数の永続性ユニット用にEntityManagerを取得する方法
- 22. solaris 10でPATH変数を永続的に変更する方法は?
- 23. 関数内で外部変数を永続的に変更する
- 24. AngularDartでのメディアの変更時にアプリケーションレイアウトの引き出しを一時的に永続的に変更する
- 25. JQuery - JSON永続化変更
- 26. 共有メソッドのHttpContext.Current.Sessionが変更を永続的に変更しない
- 27. 変更が永続的になるようにリストを追加するには?
- 28. 永続性ユニットなしでデータベーススキーマからJavaクラスを生成
- 29. htaccessの永続的なリダイレクト動的URL?
- 30. jQueryはリンクテキストの色を変えずに永続的に変更します
どのサーバーを使用していますか? –
Nop。それはスタンドアロンのアプリケーションです。データベースサーバーはOracle-12cとSQL Server 9.0.xです。 –