Našel jsem zatím jen tohle propojení, ale bohužel nefunguje:
<bean id="sessionFactory" factory-bean="entityManagerFactory"
factory-method="getSessionFactory" />
<bean name="openSessionInViewInterceptor"
class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
Zdá se mi nějaké podezřelé, že jsem dosud nenašel funkční řešení. JPA
je standard a Hibernate jeho nejpoužívanější implementace. Popis
potíží s uzavíráním session při lazy fetching je plný Google, ale
zatím nic nefunguje. Nikdo kombinaci JPA+Spring+Hibernate nepoužíváte?
:)
Jirka Hradil
2009/1/22 Ondřej Fafejta <[email protected]>:
> Zdravím konferenci,
>
> používáme JPA a zkoušíme místo implementace toplink používat
> implementaci od hibernate.
> Přechod na jiného vendora proběhl docela bez problémů.
>
> Pokud jsme přešli na hibernate, tak přestala fungovat lazy inicializace.
> Vyhazuje se známá exception:
> org.hibernate.LazyInitializationException ... no session or session was
> closed
>
> Nedaří se mi zjistit, jak přidat k entityManageru (z JPA) session z
> hibernate-u.
> Na googlu jsem nic vhodného nenašel.
>
> Je vůbec možné přidat OpenSessionInViewInterceptor entityManageru?
>
> něco takového:
>
> <bean id="mySessionFactory"
> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
> <property name="dataSource" ref="dataSource"/>
> </bean>
>
> <bean name="openSessionInViewInterceptor"
> class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
> <property name="sessionFactory">
> <ref bean="mySessionFactory"/>
> </property>
> </bean>
>
> <bean id="entityManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
> ...
> <property name="hibernate.ejb.interceptor"
> ref="openSessionInViewInterceptor" />
>
> (toto samozřejmě nefunguje, jinak bych sem nepsal ;-))
>
> Díky
>
> Fafi
>