OpenSessionInViewFilter是用来处理懒加载异常的。

懒加载异常的意思的就是:还用不到的东西,就先不加载,等需要的时候再来加载。
所以懒加载对性能有一定的提升,但是,这也会出现一些问题,一般来说,事务开始的时候Session就被获取,事务结束的时候Session就会被关闭。所以懒加载会出现Session已关闭,却还是去调用Session,从而报Session为空的错误。
据我所知道解决这个问题的方法有两个:一个就是关闭懒加载异常。(一般不推荐!因为关闭了,就不能使用懒加载的好处了)
另一个方法就是把Session的关闭延后。(推荐使用)

在使用第二种方法解决这个问题时,要先了解一下事务、Session等的调用过程:
如:



因为在显示层的时候要使用到懒加载属性,所以要让Session到显示层调用了懒加载之后在关闭。


那么可以把Session的关闭交给Filter或Interceptor,因为很多程序都要用到这个功能,所以有人已经实现了这个功能。
也就是:  org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
只要配置这个Filter就可以了。
如下:
  1. <!-- 防止懒加载异常的过滤器 -->
  2. <filter>
  3. <filter-name>OpenSessionInViewFilter</filter-name>
  4. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>OpenSessionInViewFilter</filter-name>
  8. <url-pattern>*.action</url-pattern>
  9. </filter-mapping>
不过要注意的一件事!
就是这个OpenSessionInViewFilter  过滤器要配置在Struts配置之前。
不然会无效!!



OpenSessionInViewFilter的配置的更多相关文章

  1. OpenSessionInViewFilter 的配置及替代方案

    OpenSessionInViewFilter 的配置及替代方案 博客分类: hibernate OpenSessionInViewFilter 的配置及替代方案  Spring 为我们提供了一个叫做 ...

  2. OpenSessionInViewFilter 的配置及替代方案(转)

    鸣谢:http://justsee.iteye.com/blog/1174999,http://blog.csdn.net/sunsea08/article/details/4545186 Sprin ...

  3. OpenSessionInViewFilter 的配置及作用

    spring为我们解决hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessio ...

  4. OpenSessionInViewFilter 的配置及作用(原文地址: http://blog.csdn.net/sunsea08/article/details/4545186)

    spring为我们解决hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessio ...

  5. opensessioninviewFilter导致org.hibernate.NonUniqueObjectException

    起因: 公司业务需求,增加了一个新的数据源,增加之后,起初一切正常,但是发现后台管理系统所有Ajax请求获取信息没有问题,但是涉及到保存操作就抛出异常. 异常: org.hibernate.NonUn ...

  6. 使用OpenSessionInViewFilter的注意事项

    假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterc ...

  7. OpenSessionInViewFilter浅谈

    本篇文章转载自--OpenSessionInViewFilter的配置及作用 spring为我们解决hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延 ...

  8. filter 过滤器(监听)

    Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, ...

  9. Java 中的 Filter 过滤器详解

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 ...

随机推荐

  1. 简单的FreeBSD 的内核编译

    简单的FreeBSD 的内核编译 删除并重新下载内核源码 删除自带的内核源码rm -rf /usr/src 下载内核源码wget https://download.freebsd.org/ftp/re ...

  2. JZOJ 5280 膜法师

    好啰嗦......还好作者给了一句话题意,不然光看题就很耗费时间. 样例输入: 1 6 3 1 78 69 55 102 233 666 样例输出: 1 2 3 4 5 6 11  数据范围: 思路: ...

  3. POJ 2115 C-Looooops | exgcd

    题目 给出一个循环for(int i=A;i!=B;i+=C) 在mod (1<<k) 下是否可以退出循环 是,输出时间,否输出FORVEER 题解: 题意可以变换成 A+Cx=B (mo ...

  4. javascript传递参数如果是object的话,是按值传递还是按引用传递?

    作者:苏墨橘链接:https://www.zhihu.com/question/27114726/answer/35481766来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. QML与Qt C++ 交互机制探讨与总结(转)

    原文转自 https://www.cnblogs.com/aoldman/p/4103510.html 介绍 QML和 C++对象可以通过,signals,slots和 属性修改进行交互.对于一个C+ ...

  6. 几种常见的YUV格式--yuv422:yuv420【转】

    转自:http://blog.csdn.net/u012288815/article/details/51799477 关于yuv 格式 YUV 格式通常有两大类:打包(packed)格式和平面(pl ...

  7. entitymanager 进行数据序列化

    场景:同一个方法里,需要将前一部分执行的数据保存到数据库.后半部分读取数据时从数据库里获取,而不是获取到缓存里的数据. 理解eneityManager的这三个方法的作用和区别,首先需要分清楚Persi ...

  8. springMVC多图片压缩上传的实现

    首先需要在配置文件中添加配置: <!--配置文件的视图解析器,用于文件上传,其中ID是固定的:multipartResolver--> <bean id="multipar ...

  9. python--traceback模块

    #!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat # 异常处理在python中已经屡见不鲜了,我们不仅可以处理异常,也可以将 ...

  10. [BZOJ2152]聪聪可可 点分治/树形dp

    2152: 聪聪可可 Time Limit: 3 Sec  Memory Limit: 259 MB Submit: 3602  Solved: 1858 [Submit][Status][Discu ...