繁体   English   中英

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

[英]How can I receive the persistence unit name of an EntityManager?

在 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 只允许检索一个实体管理器。 但是您可以尝试创建一个类/无状态 bean,它将保留多个 PU,并从他那里获取您需要的 PU。 也许这比使用 EntityManagerFactory 好一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM