1

複数のデータベース/データソースで期待される結果を表し、異なるクエリを実行することもできるエンティティBeanがありますが、同じ結果が常に返されます。したがって、Beanは、動的に選択できるはずのさまざまなデータソースで再利用されます。

JPAを使用して、実行時にクエリの実行に使用するデータソースを選択し、同じタイプのエンティティBeanを返すことは可能ですか?また、私のejb /アプリケーションは使用されるデータソースを定義する必要がありますか?または、使用するデータソースをjndi経由で常に指定できますか?新しいデータソースが作成されるたびに記述子を変更してアプリケーションを再デプロイすることはできません。

質問が100%意味をなさない場合は申し訳ありませんが、アイデアを理解するのはかなり困難です。

4

2 に答える 2

0

JPAを使用して、実行時にクエリの実行に使用するデータソースを選択し、同じタイプのエンティティBeanを返すことは可能ですか?

実行時に永続ユニットのデータソースを変更することはできません。ただし、複数の永続性ユニットを構成して、いずれかを使用することができますEntityManagerFactory。たぶん、JPAはあなたのユースケースに適したツールではありません。

新しいデータソースが作成されるたびに記述子を変更してアプリケーションを再デプロイすることはできません。

そして、アプリケーションは「利用可能なデータソース」をどのように認識しますか?

于 2010-06-10T17:03:15.487 に答える
0

実行時にJPAデータソースを変更できますが、アプローチには注意が必要です(イントロスペクション、JPA実装固有など)。

を作成する直前のとの両方でデータソースjavax.persistence.spi.PersistenceProviderをオーバーライドして設定する独自の実装を実装しました。このように、実行時に構成されたデータソースがあります。アプリケーションがアンデプロイされるまで保持します。org.hibernate.ejb.HibernatePersistenceMapPersistenceUnitInfoPersistenceProviderEntityManagerFactoryEntityManagerFactoryEntityManagerFactory

EntityManagerFactory同じbeアプローチを使用して、それぞれが特定のデータソースを持つN個の異なるものを作成できます。ただし、それぞれÈntityManagerFactoryが大量のメモリを使用することに注意してください。

于 2014-01-16T09:18:17.183 に答える