非Web应用程序中的OpenSessionInViewInterceptor

时间:2012-12-24 12:47:19

标签: spring hibernate open-session-in-view

我必须在非Web应用程序中使用OpenSessionInViewInterceptor。我按如下方式配置了OSV拦截器,

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

我收到了一个延迟加载异常。有什么指向我错的地方吗?配置是否正确?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

OpenSessionInViewInterceptor

的第一行Java Doc开始
  

Spring Web请求拦截器,它将Hibernate Session绑定到线程以进行整个请求处理。

因此,如果您没有Web应用程序,因为您没有Web应用程序,那么此拦截器对您没有帮助。

OpenSessionInViewFilter仅适用于Web应用程序。

因此,您需要“手动”启动会话/交易,例如@Transactional