HibernateTemplate可以与EntityManager共存吗?

时间:2015-03-04 09:14:20

标签: java spring hibernate jpa

我们有一个spring 3应用程序仍然使用已弃用的HibernateTemplate来保持持久性,并希望迁移到更现代的JPA EntityManager

是否可以在迁移期间并行使用这两个API(甚至可能在单个事务中都使用),以便我们可以在很小的步骤中进行迁移?

或者我们必须做大爆炸吗?

1 个答案:

答案 0 :(得分:11)

当然,为什么不呢。

最简单的方法是删除LocalSessionFactoryBeanHibernateTransactionManager配置,并分别将其替换为LocalContainerEntityManagerFactoryBeanJpaTransactionManager

然后要获得SessionFactory添加HibernateJpaSessionFactoryBean,这会为SessionFactory公开基础EntityManagerFactory

这样两种技术都应该和平共存。

有些报道说这样做会导致No CurrentSessionContext configured!出现例外情况。如果你得到它,请将以下内容添加到persistence.xml

<property name="hibernate.current_session_context_class" value="org.springframework.orm.hibernate4.SpringSessionContext"/>

jpaProperties的{​​{1}}。

LocalContainerEntityManagerFactoryBean