【问题标题】:How can I receive the persistence unit name of an EntityManager?如何接收 EntityManager 的持久性单元名称?
【发布时间】:2011-06-30 13:12:48
【问题描述】:

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

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

【问题讨论】:

    标签: java jpa java-ee-5


    【解决方案1】:

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

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

    但是不知道有没有好的解决办法。注释@PersistenceContext 只允许检索一个实体管理器。但是您可以尝试创建一个将保留多个 PU 的类/无状态 bean,并从他那里获取您需要的 PU。也许这比使用 EntityManagerFactory 好一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 2013-06-10
      • 2014-09-16
      • 1970-01-01
      • 2011-06-04
      相关资源
      最近更新 更多