ssh中org.springframework.orm.hibernate4.support.OpenSessionInViewFilter的作用及配置

 org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 是Spring为我们解决Hibernate的Session的关闭与开启问题。 

Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常

(eg: org.hibernate.LazyInitializationException:(LazyInitializationException.java:42)
 - failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed)。

用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。

而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。

OpenSessionInViewFilter的主要功能是用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。
OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境,也可以用于非事务只读的数据操作中。
<filter>
        <filter-name>Spring OpenSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
     <init-param>

<!--
指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory
     如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外
-->
     <param-name>sessionFactoryBean</param-name>
   <param-value>sessionFactory</param-value>
  </init-param>
</filter>
<filter-mapping>
        <filter-name>Spring OpenSessionInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
时间: 2024-10-17 19:28:38

ssh中org.springframework.orm.hibernate4.support.OpenSessionInViewFilter的作用及配置的相关文章

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter

---恢复内容开始--- 1 /* 2 * Copyright 2002-2014 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of t

org.springframework.orm.hibernate4.support.OpenSessionInterceptor

/* * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://

Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.HibernateTemplate

1.错误描述 严重: Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.HibernateTemplate] for bean with name 'hibernateTemplate' defined in ServletContext resourc

ssh中的application.xml配置

关于mySql 的 jdbc.properties 1 jdbc.driverClassName=com.mysql.jdbc.Driver 2 jdbc.url=jdbc:mysql://localhost:3306/ue_project 3 jdbc.username=root 4 jdbc.password=huashow ssh中的application.xml配置 1 <?xml version="1.0" encoding="UTF-8"?>

SSH框架手动整合——Struts2+Hibernate4+Spring4

最近遇到过一些框架方面的问题,其中有MyBatis.SSH.SpringMVC,其中SSH的一些配置有些忘的差不多了,也有一些同事问了这些问题,前几个月也整合过SSH框架,那个时候是直接拿别人的Jar包直接整合框架,好像是Struts2+Hibernate3+Spring4,这次是相关的Jar从相关的官网下的. 我整合的环境: --Win 7 64 --MySQL 5.6 --MyEclipse 2014 --Jar包:struts-2.3.28.spring-framework-4.0.4.R

SSH中懒加载异常的解决办法

web.xml 的配置文件 <!-- 配置Spring解决懒加载问题的过滤器 --> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <

(14)SSH中BaseDao实现

在使用Hibernate的进行删除的时候,我们可以写这样的HQL语句: 对于Employee对象: delete from Employee where empId=? 对于Department对象: delete from Department where deptId=? 假如说要写一个BaseDao的删除方法时,就要进行一下抽象,得到下面的HQL语句 delete from 类名 where 主键属性=? 我们的代码应该能够让"类名"和"主键属性"能够&quo

SSh框架搭建(Struts2.1+Hibernate4.0+Spring3.1)

一.使用工具 开发工具:My Eclipse 10.7以及相应的java开发工具 框架版本:Struts2.1+Hibernate3+Spring3.0 数据库:MySql5.5 Mysql可视化工具:Navicat 11 所需软件的下载地址:Navicat 11:http://pan.baidu.com/s/1nthrWtb                                MyEclipse:http://www.xpgod.com/soft/7498.html         

hibernate4 , spring3 使用 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean 报错 Implementing class

错误代码如下 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [file:/D:/eclipse3/workspace/diancai_parent/diancai_web/src/main/webapp/WEB-INF/classes/applicationContext.xml]: