【问题标题】:why `EntityManager` work,but EntityManagerFactory did not work for me?为什么 `EntityManager` 工作,但 EntityManagerFactory 不适合我?
【发布时间】:2016-05-09 13:43:26
【问题描述】:
我尝试使用Spring+JPA+Hibernate 并尝试注入EntityManagerFactory,然后在我的代码中创建EntityManger。但是当我使用entityManager.persist(user) 时,user 没有保存到database。但是当我尝试注入EntityManager 而不是EntityManagerFactory,它起作用了!,我不知道问题出在哪里。
您还可以查看此question 了解更多代码。
【问题讨论】:
标签:
spring
hibernate
jpa
jakarta-ee
【解决方案1】:
当使用普通的EntityManagerFactory 而不是EntityManager 时,您需要调用createEntityManager。这将始终创建一个新的EntityManager,这基本上是一个普通的EntityManager,Spring 没有管理也没有检测到。因此,您还必须自己启动/提交事务。
当使用EntityManager时,你将获得一个事务同步实例,它由Spring管理并绑定到当前事务。因此无需自己启动/提交事务。
另请参阅参考指南的JPA section。