Spring を使用すると、次のプロパティで Bean を自動配線できます。
@PersistenceContext(unitName="foo") private EntityManager em;
以下を使用して、Bean「someBean」を手動で自動配線できます。
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("META-INF/applicationContext.xml");
AutowireCapableBeanFactory fac = ctx.getAutowireCapableBeanFactory();
fac.autowireBean(someBean);
ただし、特定の EntityManager を直接取得する方法がわかりません。ユースケースは、すべての EntityManager オブジェクトを取得し、それらのオブジェクトで単純なクエリを実行して、それらが適切に設定されていることを確認するテストを作成することです。これを行うには、アプリケーション コンテキストからすべての EntityManager オブジェクトを取得できる必要があります。どうやってやるの?
以下は動作しません。空のマップを返します。
Map<String,EntityManager> ems = ctx.getBeansOfType(EntityManager.class);