EJBで永続ユニットを動的に指定する方法が必要です。JPA動的永続ユニットの名前
簡略化された例:
データストアとして複数のデータベースを使用するアプリケーションがあります。 各データストアは構造的に同じです。 アプリケーションに接続するクライアントによっては、特定のデータストア のデータにアクセスする必要があります。
したがって、ビジネスロジックが重複しないように同じEJBを使用したいと考えていますが、 が、クライアントに基づいて正しい永続性ユニットを選択するだけです。
これまでは、エンティティマネージャに、永続化ユニット名をハードコードして注入しただけです。 EJBに必要な永続性ユニットを動的に挿入する方法はありますか? また、実行時に永続性ユニットを動的に追加できますか? 現在、persistence.xmlファイルで永続性単位を指定する必要があります。 理想的には、システムの稼働中に、必要に応じてサーバーjdbc/db1、jdbc/db2などにプールを作成したいと考えています。次に、これらを中央のクライアントデータベースに追加してクライアントにリンクするだけで、クライアントが接続するときにプールの名前がチェックされ、永続ユニットを取得するためにEJBを呼び出すときに使用されます。
私はまだJava EE開発の新機能です。どんな助けでも大歓迎です。
これは私が必要とするものですが、各永続性ユニットをSharedEntityManagerFactoryに定義する必要があります。 コードを変更する必要がなく、再デプロイメントを必要としないように、それらを動的に追加できるようにしたいと思います。永続ユニットの詳細をメインデータベースに保存し、必要に応じてクライアントにリンクするだけで済みます。しかしこれは、各データストアを別個のWebサービスとして実装するよりはるかに優れています。ずっと少ないオーバーヘッド。 Webサービスには、URLをdbに格納して動的に使用できるという利点があります。私はオプションを上げる必要があります。 – likenoother