Spring OpenSessionInViewInterceptor не работает

У меня была (не) известная проблема с гибернацией и отложенной загрузкой при рендеринге представлений .... Как многие говорят, есть только два решения:

  • Сделать метод транзакционным (а это не всегда желательно)
  • Используйте OpenSessionInViewInterceptor.

Последнее предпочтительнее ИМО. В любом случае, я не уверен, что этот перехватчик вообще срабатывает (на самом деле я получаю то же исключение ленивой загрузки, и ничего не меняется):

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

Я использую простые сопоставления URL-адресов на основе аннотаций, поэтому, читая документацию для Spring 3, я Я использую это в моем 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>

Что должно помочь. Но это не работает, и я получаю исключение. Как мне убедиться, что мой перехватчик стреляет? Как мне решить эту проблему?

5
задан Udo Held 9 December 2011 в 12:44
поделиться