Hibernate SpringOpenSessionInviewWinterCeptor不';行不通

Hibernate SpringOpenSessionInviewWinterCeptor不';行不通,hibernate,spring,lazy-loading,Hibernate,Spring,Lazy Loading,我有一个著名的问题,当视图呈现时,hibernate和延迟加载。。。。正如许多人所说,只有两种解决方案: 使方法具有事务性(这并不总是必需的) 使用OpenSessionInviewWinterCeptor 在我看来,后者更可取。无论如何,我不确定这个拦截器是否触发(事实上,我得到了相同的延迟加载异常,并且没有任何更改): 我使用的是简单的基于注释的url映射,因此在阅读Spring 3的文档时,我在servlet-context.xml中使用了以下内容: <bean id="hand

我有一个著名的问题,当视图呈现时,hibernate和延迟加载。。。。正如许多人所说,只有两种解决方案:

  • 使方法具有事务性(这并不总是必需的)
  • 使用OpenSessionInviewWinterCeptor
在我看来,后者更可取。无论如何,我不确定这个拦截器是否触发(事实上,我得到了相同的延迟加载异常,并且没有任何更改):

我使用的是简单的基于注释的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>

这才是关键。但它不起作用,我得到了一个例外。如何确保我的拦截器正在发射?如何解决此问题?

尝试使用


顺便说一句,
@Transactional
是另一回事——它不会让你的收藏在“视图”中工作。它只是为带注释的方法(及其调用的方法)打开一个事务(和一个会话)

您是否使用@RequestMapping注释?如果我没记错的话,在url bean上放置拦截器是有问题的。使用Spring 3.0,您可以如下定义拦截器:

<mvc:interceptors>
    <bean class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
</mvc:interceptors>

如果您将Struts2与Spring和Hibernate一起使用,请尝试使用OpenSesisonInViewFilter,并在web.xml中指定它,谢谢您的咒语很管用。不管怎样,对于未来,我如何确保拦截器正在发射并且我的配置是正确的?否则,就像在这种情况下,除了看到我不再得到异常之外,没有其他方法知道这一点。必须是调试或记录它的方法@gotch4如果您打开org.springframework上的日志来进行调试,您可以在日志文件中看到它。我该如何准确地做到这一点?对不起,在你的log4j.properties文件中我是一个跛脚新手我爱你,伙计!我解决了jsp文件上的“无会话”问题很长一段时间都没有成功,最终的解决方案是将OSIV拦截器添加到webappContext。
<mvc:interceptors>
    <bean class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
</mvc:interceptors>
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"