如何收到EntityManager的持久性单元名称?

时间:2011-06-30 13:12:49

标签: java jpa java-ee-5

在Java EE应用程序中,我在EJB3.0 SessionBean上使用@PersistenceContext让EntityManager自动装配。

当我使用多个数据源时,我想以编程方式确定EntityManager的自动装配的PersistenceUnit名称。有机会吗?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式检索多个实体管理器:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("name your PU")
EntityManager em = emf.createEntityManager();
...
em.close();
emf.close();

但我不知道是否有一个好的解决方案。注释@PersistenceContext仅允许检索一个实体管理器。但是你可以尝试创建一个类/无状态bean,它将保留多个PU,并从你需要的PU中取出。也许这比使用EntityManagerFactory好一点。

相关问题