我尝试使用Spring+JPA+Hibernat
e并尝试注入EntityManagerFactory
,然后在我的代码中创建EntityManger。但是当我使用entityManager.persist(user)
时,user
没有保存到database
。但是当我尝试注入EntityManager
而不是EntityManagerFactory
时,它有效!我不知道问题出在哪里。
您还可以看到此question以获取更多代码。
答案 0 :(得分:1)
使用普通EntityManagerFactory
代替EntityManager
时,您需要拨打createEntityManager
。这将始终创建一个新的EntityManager
,这基本上是一个未被Spring管理或检测的普通EntityManager
。所以你还必须自己启动/提交事务。
使用EntityManager
时,您将获得一个事务同步实例,该实例由Spring管理并绑定到当前事务。所以不需要自己启动/提交事务。
另请参阅参考指南的JPA section。