一尘不染

HibernateTemplate可以与EntityManager共存吗?

hibernate

我们有一个spring 3应用程序,该应用程序仍然使用不推荐使用HibernateTemplate的持久性,并且想要迁移到更现代的JPA
EntityManager

是否可以在迁移过程中同时使用两个API(可能甚至在一个事务中同时使用两个API),以便我们可以分步进行迁移?

还是我们必须大爆炸?


阅读 253

收藏
2020-06-20

共1个答案

一尘不染

当然可以,为什么不呢。

最简单的方法是删除LocalSessionFactoryBeanHibernateTransactionManager配置,LocalContainerEntityManagerFactoryBeanJpaTransactionManager分别用和替换它。

然后,以获得SessionFactory附加的HibernateJpaSessionFactoryBean,它公开的基本SessionFactoryEntityManagerFactory

这样,两种技术应该和平共处。

有报道说这样做会导致异常No CurrentSessionContext configured!。如果得到它,请将以下内容添加到您的persistence.xml

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

jpaPropertiesLocalContainerEntityManagerFactoryBean

<property name="jpaProperties">
    <props>
        <prop name="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
    <props>
<property>
2020-06-20