Java EE アプリケーションでは、EJB3.0 SessionBean で @PersistenceContext を使用して、EntityManager を自動接続させています。
複数のデータソースを使用しているため、自動配線された EntityManager の PersistenceUnit 名をプログラムで決定したいと考えています。チャンスはありますか?
次の方法で、複数のエンティティ マネージャーを取得できます。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("name your PU")
EntityManager em = emf.createEntityManager();
...
em.close();
emf.close();
しかし、良い解決策かどうかはわかりません。アノテーション @PersistenceContext では、エンティティ マネージャーを 1 つだけ取得できます。ただし、複数の PU を保持する 1 つのクラス/ステートレス Bean を作成して、必要な PU を取得することもできます。たぶん、これは EntityManagerFactory を使用するよりも少し優れています。