OpenSessionInViewFilter(Hibernate与Spring混合项目)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QianZhaoVic/article/details/79031207
Hibernate允许对关联对象、关联属性进行延迟加载,但是必须保证延迟加载的操作限制在同一个Hibernate Session范围内进行,如果session关闭,则会导致懒加载失败,报错 could not initialize proxy - no Session.
OpenSeaaionVIewFilter是Spring为针对此类问题提供的过滤器,主要功能就是将一个Hibernate Session和一次完整的请求过程对应的线程绑定在一起。

具体配置为在web.xml中加入一个过滤器:
<!-- 使用OpenSessionInViewFilter。这种方法是将session交给servlet filter来管理,每当一个请求来之后就会开 
		启一个session,只有当响应结束后才会关闭。(注意:在struts2的过滤器前配置 ) -->
	<filter>
		<filter-name>openSessionInViewerFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>sessionFactoryBeanName</param-name>
			<param-value>sessionFactory</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewerFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


猜你喜欢

转载自blog.csdn.net/QianZhaoVic/article/details/79031207