2015-03-04 20 views
5

Halen devamsızlık için kullanılmayan HibernateTemplate'u kullanan ve daha modern JPA EntityManager'a geçmek isteyen bir yay 3 uygulamasına sahibiz.HibernateTemplate, EntityManager ile birlikte var mı?

Her iki API'yi geçiş sırasında paralel olarak kullanmak mümkün mü (muhtemelen her iki işlemde bile), böylece küçük adımlar halinde geçiş yapabiliriz?

Yoksa büyük patlama yapmak zorunda mıyız?

cevap

10

Elbette, neden olmasın.

En kolayı, LocalSessionFactoryBean ve HibernateTransactionManager yapılandırmanızı bırakmak ve sırasıyla LocalContainerEntityManagerFactoryBean ve JpaTransactionManager ile değiştirmek olacaktır. Bir SessionFactory elde etmek için HibernateJpaSessionFactoryBean ekleyin, EntityManagerFactory için temel SessionFactory açığa vurur.

Bu şekilde, her iki teknoloji de barış içinde bir arada bulunmalıdır.

Bunu yapmanın, No CurrentSessionContext configured! bildiren bir istisna yol açtığına dair bazı raporlar vardır. Eğer persistence.xml

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

veya LocalContainerEntityManagerFactoryBean ait jpaProperties birine aşağıdaki onu ekleyin alırsanız.

<property name="jpaProperties"> 
    <props> 
     <prop name="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop> 
    <props> 
<property> 
+0

Cevabınız için teşekkürler, bunu deneyeceğim ... –

+0

Şimdi "No CurrentSessionContext yapılandırıldı!" Hatası alıyorum –

+0

Çözüldü, şimdi bir sonraki hatayı alıyorum: "createCriteria aktif işlem olmadan geçerli değil". Benim @Transactional ek açıklamaları artık işlenmemiş gibi görünüyor –

İlgili konular