【发布时间】:2014-01-29 02:16:48
【问题描述】:
在几个项目中我已经成功使用
@PersistenceUnit(unitName = "MiddlewareJPA")
EntityManagerFactory emf;
...
EntityManager entityManager = emf.createEntityManager();
获取EntityManager 用于数据库连接,但几天前我试图将我的项目移动到Jboss EAP 6.2,但它无法创建EntityManager。我在谷歌上搜索它,发现我应该尝试将@PersistenceUnit 更改为
@PersistenceContext(unitName = "MiddlewareJPA")
private EntityManager entityManager;
获取EntityManager。它有效,但我不知道为什么。 PersistenceUnit 和 PersistenceContext 之间有什么区别?各有什么优缺点?我们应该在哪里使用其中之一?
【问题讨论】:
-
考虑采用 CDI 规范(JEE 6 中的新特性)来执行依赖注入,这样您就有了一种更“通用”的方式来执行它,而不是一大堆 API/框架特定的注释。这并没有真正为 JEE 6 本身中的实体管理器注入提供开箱即用的支持,但是有记录的方法来处理它。 mastertheboss.com/cdi/cdi-and-jpa-tutorial
-
作为可用答案的补充:这是一篇非常有用的文章,也可以帮助回答 OP 的问题:JPA Concepts
标签: java jakarta-ee jpa persistence entitymanager