我们有一个spring 3应用程序仍然使用已弃用的HibernateTemplate
来保持持久性,并希望迁移到更现代的JPA EntityManager
。
是否可以在迁移期间并行使用这两个API(甚至可能在单个事务中都使用),以便我们可以在很小的步骤中进行迁移?
或者我们必须做大爆炸吗?
答案 0 :(得分:11)
当然,为什么不呢。
最简单的方法是删除LocalSessionFactoryBean
和HibernateTransactionManager
配置,并分别将其替换为LocalContainerEntityManagerFactoryBean
和JpaTransactionManager
。
然后要获得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