为什么`EntityManager`工作,但EntityManagerFactory对我不起作用?

时间:2016-05-09 13:43:26

标签: spring hibernate jpa java-ee

我尝试使用Spring+JPA+Hibernat e并尝试注入EntityManagerFactory,然后在我的代码中创建EntityManger。但是当我使用entityManager.persist(user)时,user没有保存到database。但是当我尝试注入EntityManager而不是EntityManagerFactory时,它有效!我不知道问题出在哪里。

您还可以看到此question以获取更多代码。

1 个答案:

答案 0 :(得分:1)

使用普通EntityManagerFactory代替EntityManager时,您需要拨打createEntityManager。这将始终创建一个新的EntityManager,这基本上是一个未被Spring管理或检测的普通EntityManager。所以你还必须自己启动/提交事务。

使用EntityManager时,您将获得一个事务同步实例,该实例由Spring管理并绑定到当前事务。所以不需要自己启动/提交事务。

另请参阅参考指南的JPA section