我面临的问题是,在
JpaTemplate使用jpa实体时,在4年前的spring,我毫无问题地从编程
EntityManager实例传递到了
JpaTemplate编程实例
EntityManagerFactory。
JpaTemplate本身会做任何事情来刷新
EntityManager和清除缓存。当我迁移到Spring
4时,我遇到了
JpaTemplate被删除的问题,因此我必须
EntityManager直接使用它。
我从的实例以
EntityManager编程方式获取实例
EntityManagerFactory。
我有一个从的实例
EntityManagerProvider创建的实例的类。
EntityManager``EntityManagerFactory
public class EntityManagerProvider { public static EntityManager createEntityManager(EntityManagerFactory entityManagerFactory) { return entityManagerFactory.createEntityManager(); }}我得到这样的entityManager实例:
<bean id="entityManager" factory-method="createEntityManager"> <constructor-arg index="0" ref="entityManagerFactory"/></bean>
但是我知道,如果要
EntityManager管理事务和刷新,唯一的方法是使用
@PersistenceContext注入
EntityManager到我的bean中。
@PersistenceContextprotected EntityManager em;
我对这种方式有些困惑,但是用这种方法解决了我的问题。



