У меня была (не) известная проблема с гибернацией и отложенной загрузкой при визуализации представлений .... Как говорят многие, единственные два решения:
- Сделать метод транзакционным (и это не всегда желательно)
- Использовать OpenSessionInViewInterceptor.
Последнее предпочтительнее ИМО. В любом случае, я не уверен, что этот перехватчик вообще срабатывает (фактически я получаю то же исключение при загрузке Lazy, и ничего не меняется):
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>
Что должно сделать трюк. Но это не работает, и я получаю исключение. Как мне убедиться, что мой перехватчик стреляет? Как мне это решить?