1

我必须在非 Web 应用程序中使用 OpenSessionInViewInterceptor。我已将 OSV 拦截器配置如下,

<bean id="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
  <property name="sessionFactory"><ref bean="sessionFactory"/></property>   
</bean>

我得到一个延迟加载异常。任何指向我哪里出错的指针?配置是否正确?

还是非 Web 应用程序需要 OpenSessionInViewFilter 而不是拦截器?

谢谢!

4

1 回答 1

1

从第一行 Java Doc 的OpenSessionInViewInterceptor

Spring Web 请求拦截器,将 Hibernate Session 绑定到线程以完成请求的整个处理。

因此,如果您因为没有 Web 应用程序而没有 Web 请求,那么这个 Interceptor 对您没有帮助。

OpenSessionInViewFilter也仅适用于 Web 应用程序。

因此,您将需要“手动”启动会话/事务,例如使用@Transactional.

于 2012-12-24T13:00:23.650 回答