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

发布于 2024-11-18 00:51:27 字数 163 浏览 5 评论 0原文

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

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

In a Java EE application I am using @PersistenceContext on an EJB3.0 SessionBean to let an EntityManager be autowired.

As I am using multiple Datasources, I want to programmatically determine the autowired PersistenceUnit name of the EntityManager. Any chance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

可是我不能没有你 2024-11-25 00:51:27

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

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

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

You can retrieve more than one entity manager in this way:

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

But I do not know if a good solution. Annotation @PersistenceContext allows retrieve only one entity manager. But you may try create one class/stateless bean which will keep more than one PU, and take from him PU which you need. Maybe this little better than use EntityManagerFactory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文