java - PersistenceUnit vs PersistenceContext

标签 java jakarta-ee jpa persistence entitymanager

在几个项目中我已经成功使用

@PersistenceUnit(unitName = "MiddlewareJPA")
EntityManagerFactory emf;
...
EntityManager entityManager = emf.createEntityManager();

获取 EntityManager 用于数据库连接,但几天前我试图将我的项目移动到 Jboss EAP 6.2 并且它无法创建 EntityManager。我在谷歌上搜索,发现我应该尝试将 @PersistenceUnit 更改为

@PersistenceContext(unitName = "MiddlewareJPA")
private EntityManager entityManager;

获取EntityManager。它有效,但我不知道为什么。 PersistenceUnitPersistenceContext 有什么区别?各有什么优缺点?我们应该在哪里使用其中之一?

最佳答案

PersistenceUnit 注入(inject) EntityManagerFactoryPersistenceContext 注入(inject) EntityManager。除非您确实需要手动管理 EntityManager 生命周期,否则通常最好使用 PersistenceContext

关于java - PersistenceUnit vs PersistenceContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038706/

相关文章:

java - 线性布局中的按钮垂直而不是水平显示?

java - 从 gradle java 项目构建的 jar 中排除所有已编译的类

现在流行的java管理客户端

database - 在大型数据库表创建过程中需要管理聚合数据的策略

java - org.hibernate.MappingException 似乎无缘无故发生

java - 使用 EntityManager 验证实体的唯一性

java - 在 Spark 中实现 SCD 类型 2

java - 在具体类中实现抽象方法

jakarta-ee - 使用 Java 和 Plone CMS 进行内容交付

java - 如何创建一张表的多个映射? (jpa hibernate )