在几个项目中我已经成功使用
@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
有什么区别?各有什么优缺点?我们应该在哪里使用其中之一?
最佳答案
PersistenceUnit
注入(inject) EntityManagerFactory
,PersistenceContext
注入(inject) EntityManager
。除非您确实需要手动管理 EntityManager
生命周期,否则通常最好使用 PersistenceContext
。
关于java - PersistenceUnit vs PersistenceContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038706/