Frühjahr OpenSessionInViewInterceptor funktioniert nicht

Hatte ich den (in)berühmten problem mit hibernate und lazy loading wenn Ansichten gerendert werden.... Wie viele sagen, die einzigen zwei Lösungen sind:

  • Machen, die Transaktions-Methode (und das ist nicht immer desiderable)
  • Verwenden OpenSessionInViewInterceptor.

Letzteres ist vorzuziehen IMO. Trotzdem bin ich nicht sicher, ob dies interceptor feuern (und in der Tat bekomme ich die gleiche Lazy loading exception und nichts ändert):

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: it.jsoftware.jacciseweb.beans.Listino.prodotti, no session or session was closed

Ich bin mit der einfachen annotation-basierte url-mappings, so dass das Lesen der Dokumentation für Spring 3, ich bin mit dieser in meinem servlet-context.xml:

<bean id="handlerMapping"
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <!-- <property name="order" value="2" /> -->
        <property name="interceptors">
            <list>
                <ref bean="openSessionInViewInterceptorInst" />
            </list>
        </property>
    </bean>

Sollte der trick. Aber es funktioniert nicht und ich bekomme die Ausnahme. Wie kann ich sicherstellen, dass meine interceptor feuern? Wie kann ich dieses Problem lösen?

InformationsquelleAutor gotch4 | 2011-02-14
Schreibe einen Kommentar