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
>

Odpovedet emailem