`
sunjiyun26
  • 浏览: 1665 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

opensessioninview的困扰

阅读更多
    在整合ssh框架的时候,问题慢慢的得到解决,用spring来管理个个组建之间的关系,各个bean之间的关系,用spring来管理一系列的事情,我们可以省下来更多的功夫去处理我们的业务,然而hibernate的lazy属性加载的时候一般都会遇到session is closed 的情况,spring提供了一个过滤器,opensessioninview,这个过滤器就会在页面提交和页面打开之前,打开一个session。具体的过滤器是什么之类的话题这里不多说。
    使用opensessioninview的时候,进行增删改的时候就会报异常
Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition
在网上查了很多的资料,一开始的时候认为是事物配置的问题,可是配置完以后,还是不对,大概郁闷了两三天,今天在网上找到一个办法试了试,ok。
就是在web.xml中配置过滤器的时候加上一个参数如下所示
<filter>   
       <filter-name>OpenSessionInViewFilter</filter-name>   
       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>   
       [color=orange]<init-param>
            <param-name>singleSession</param-name>
            <param-value>false</param-value>
        </init-param>[/color]
   
        
   </filter>  
.
橙色部分为新加的
我暂时还没明白这段参数到底是什么意思,现在只是分享一下我的快乐。今天很高兴解决了这个问题。
分享到:
评论

相关推荐

    Spring hibernate opensessioninview

    ### Spring + Hibernate OpenSessionInView 模式的理解和应用 在Java Web开发中,Spring与Hibernate作为两个重要的框架,经常被一起使用来实现业务逻辑与数据持久化的处理。而在使用这两个框架时,为了更好地管理...

    Struts Spring Hibernate 整合 OpenSessionInView 例子

    为了练手培训,给大家准备的 Open Session In View 的简单例子,纯代码,大家可以参考,其中主要说了六部分内容: 1.通过接口编程 2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载...

    OpenSessionInView项目整合jar包

    在Java Web开发中,OpenSessionInView(OSIV)模式是一种常见的解决数据持久化问题的设计模式,主要用于Spring框架与Hibernate等ORM工具的集成。这个模式的主要目的是解决在HTTP请求处理过程中,由于Session范围内的...

    Open_Session_In_View详解.doc

    ### Open_Session_In_View详解 #### 一、背景与概念 在使用Hibernate进行对象持久化时,经常遇到的一个问题是关于懒加载(lazy loading)的处理。懒加载是一种优化技术,允许在真正需要某个关联对象的数据时才加载...

    Spring提供的CharacterEncoding和OpenSessionInView功能

    Spring框架是Java开发中不可或缺的一部分,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、事务管理等。在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`...

    第30讲--Spring提供的CharacterEncoding和OpenSessionInView功能

    同时,需要注意的是,OpenSessionInView模式虽然方便,但也会带来潜在的问题,如事务边界不清晰和会话泄漏。因此,在实际应用中,应结合具体需求谨慎使用,并考虑使用更现代的解决方案,如Spring Data JPA的...

    SSH项目整合示例【OpenSessionInView】所用到的jar包

    OpenSessionInView(OSIV)模式是SSH整合中常见的一种优化策略,它在用户的一次HTTP请求过程中保持Hibernate Session,避免了多次打开和关闭Session,减少了N+1查询问题,提高了性能。 **Spring** 是一个全面的企业...

    spring中lazy=“true”的正常读取关联表(用opensessioninview)

    在Spring框架中,`lazy="true"` 是一个重要的特性,用于延迟加载(Lazy Loading)。它主要应用于数据持久层,如Hibernate等ORM框架中,目的是为了提高应用的性能。当一个对象被标记为懒加载时,只有在真正需要访问该...

    关于OpenSessionInViewFilter的学习

    OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问层(DAO)与视图层(View)之间的事务管理问题。...然而,当我们在服务层关闭了Session后,到视图层进行数据填充时,可能会遇到已关闭...

    MyContextLoaderPlugIn.jar

    和Spring中OpenSessionInView由于org.springframework.web.struts.ContextLoaderPlugIn中保存同一个对象的名不同导致openSessionInView失效 稍微修改后在struts-config.xml中使用MyContextLoaderPlugIn.jar包中...

    SSH整合示例项目 hibernate5.2.3+struts2.5.2+spring4.3.3.zip

    - **二级缓存**:提高数据访问效率,OpenSessionInView模式下配合Spring实现 session级缓存。 **OpenSessionInView模式** OpenSessionInView模式是一种解决数据持久层和Web层之间事务管理的策略。在用户请求到达时...

    HibernateSpring多数据库解决方案.doc

    本方案主要探讨如何在基于Hibernate和Spring框架的环境中实现多数据库的管理,特别是在`OpenSessionInView`模式下的配置。 首先,我们看到在`applicationContext.xml`配置文件中定义了两个数据源,一个用于读操作...

    OA项目SSH整合框架

    3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 &lt;!-- 配置 spring 的 OpenSessionInView 过滤器 --&gt; &lt;filter-name&gt;OpenSessionInView ...

    spring+spingmvc+hibernate整合总结

    OpenSessionInView过滤器在Web请求的整个生命周期内保持一个Hibernate Session,使得在视图渲染阶段也能访问到数据库对象,避免了懒加载异常。 五、配置文件 1. `jdbc.properties`:存放数据库连接信息,如URL、...

    SSH整合 struts+hibernate+spring

    **OpenSessionInView模式**是一种常用的Hibernate优化模式,其主要目的是解决Hibernate的一级缓存问题。通过这种方式,可以确保在一个HTTP请求的生命周期内,Hibernate的Session始终处于打开状态,从而避免了因...

    struts+spring+hibernate面试题

    5. 延迟加载(Lazy Loading)和`openSessionInView`模式: - 延迟加载是在需要时才加载关联对象,确保只在session范围内加载,以提高性能。 - `openSessionInView`模式是在Web层使用Filter打开和关闭Session,确保...

    Java框架面试题

    7. **延迟加载与OpenSessionInView**:延迟加载(Lazy Loading)意味着关联对象在需要时才加载,而OpenSessionInView过滤器确保在HTTP请求生命周期内保持Session打开,以支持延迟加载。 8. **Spring事务管理**:...

    TSH练习例子

    文档讨论了HibernateSession的使用,提到了Session-per-Transaction(每个事务一个会话)和OpenSessionInView(在视图中打开会话)两种模式。前者更强调事务的一致性,后者则提高了懒加载性能,但可能会导致脏读问题...

    SSH全注解环境搭建

    - 配置OpenSessionInView过滤器以实现懒加载: ```xml &lt;filter-name&gt;openSessionInView &lt;filter-class&gt;org.springframework.orm.hibernate5.support.OpenSessionInViewFilter &lt;filter-name&gt;...

    SSH项目整合示例【源码】

    在Spring中,通过开启`&lt;tx:annotation-driven&gt;`和配置`HibernateTransactionManager`,结合特定的拦截器,可以实现OpenSessionInView。 5. **整合过程**:SSH整合涉及配置多个文件,包括web.xml(应用部署描述符)...

Global site tag (gtag.js) - Google Analytics