zoukankan      html  css  js  c++  java
  • 使用OpenSessionInViewFilter的注意事项

    假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterceptor。session会在
    
    transaction结束后关闭。

    如果应用中使用了OpenSessionInViewFilter或者OpenSessionInViewInterceptor,所有打开的session会被保存在一个线程变量里。在线程退出前通过 OpenSessionInViewFilter或者OpenSessionInViewInterceptor断开这些session。 为什么这么做?这主要是为了实现Hibernate的延迟加载功能。基于一个请求一个hibernate session的原则 允许在事务提交之后延迟加载显示所需要的对象 在web.xml中配置opensessioninviewFilter需要注意一下几点:
    1、必须配置在struts2 Filter的前面 2、opensessioninviewFilter中默认的SessionFactoryBeanName是sessionFactory,因此在applicationContext.xml中配置的SessionFactory的bean实例名称最好也是 sessionFactory,否则就要在web.xml中为opensessioninviewFilter额外配置SessionFactoryBeanName 它也支持通过在web.xml中定义的“SessionFactoryBeanName”的init-param元素 指定的Session工厂对应的bean的名字来查找session工厂。默认的bean的名字 是"sessionFactory"3、如果在applicationContext.xml中没有配置事物的话 但是在web.xml中配置了opensessioninviewFilter,那么opensessioninviewFilter会默认将在没有配置事物的方法上配 置readOnly,这也是为什么在某些涉及到插入或修改数据库的方法上没有加事物而出现的 readOnly错误的原因
  • 相关阅读:
    eclipse对项目Working Sets整理分类
    word中visio只显示边框,不显示内容解决
    使用WebStorm运行vue项目
    如何提高你的学习速度-超链接式学习法
    SQL中的join连接查询
    TCP的三次握手
    Tomcat 实现热部署
    Linux下软件设成系统服务运行
    Redis服务器搭建
    nginx.conf完整配置实例
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4114756.html
Copyright © 2011-2022 走看看