Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa @PersistenceContext和EntityManagerFactory之间有什么区别_Jpa - Fatal编程技术网

Jpa @PersistenceContext和EntityManagerFactory之间有什么区别

Jpa @PersistenceContext和EntityManagerFactory之间有什么区别,jpa,Jpa,我开始学习JPA和EJB,当我处理一些示例时,我看到有两种创建EntityManager,使用@PersistenceContext和使用EntityManager工厂: @PersistenceContext(unitName ="somename") private EntityManager entityManager; 及 我不太清楚这两种方法是否相同。有人能解释一下它们之间的区别吗?如果它们是相同的,那么现在在创建JavaEE应用程序时,哪一个是“更新的” 谢谢。第一个使用注释,第二

我开始学习JPA和EJB,当我处理一些示例时,我看到有两种创建
EntityManager
,使用
@PersistenceContext
和使用
EntityManager工厂

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

我不太清楚这两种方法是否相同。有人能解释一下它们之间的区别吗?如果它们是相同的,那么现在在创建JavaEE应用程序时,哪一个是“更新的”


谢谢。

第一个使用注释,第二个使用工厂。最后,两者是相同的,它们并不完全相同,因为注释允许容器管理的注入,而工厂方法迫使您自己管理生命周期。完成后必须关闭资源。@Sonn您的问题基本上归结为:第一个使用注释,第二个使用工厂。最后,两者是相同的,它们并不完全相同,因为注释允许容器管理的注入,而工厂方法迫使您自己管理生命周期。完成后必须关闭资源。@Sonn您的问题基本上归结为:和
EntityManagerFactory emf = Persistence.createEntityManagerFactory("somename");
EntityManager em = emf.createEntityManager();