0 0

OpenSessionInViewFilter的问题(扩大session范围)!!5

这是我在web.xml里的配置

 

<filter>  
	    <filter-name>OpenSessionInViewFilter</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>
	</filter>

	<filter-mapping>
	    <filter-name>OpenSessionInViewFilter</filter-name>  
	    <url-pattern>/*</url-pattern>  
	</filter-mapping>

 

action:里PageResult<UserInfo> pageresult = userService.queryForPages(qo);
  List<UserInfo> list = pageresult.getPageresult();
  System.out.println("----->>>"+list);

 

这个UserInfo里面 有一个属性:

private List<Resource> resources = new ArrayList<Resource>();

他们是1对多的关系,  

 

问题是:  我在通过Userinfo获取resources的时候, 报错:

 

failed to lazily initialize a collection of role: com.domain.UserInfo.resources, no session or session was closed

 

我上面的配置错了吗???  OpenSessionInViewFilter这个不是可以帮我把session开到action层吗》?怎么不好用????????哪里写错了?

2013年1月11日 23:03

1个答案 按时间排序 按投票排序

0 0

采纳的答案



    <filter-mapping> 
        <filter-name>OpenSessionInViewFilter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping> 
加上
<dispatcher>FORWARD</dispatcher>  
<dispatcher>REQUEST</dispatcher>  

2013年1月12日 17:33

相关推荐

    关于OpenSessionInViewFilter的学习

    OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问层(DAO)与视图层(View)之间的事务管理问题。在Web应用中,由于HTTP请求的无状态性,一次请求通常由多个Servlet过滤器、控制器和...

    OpenSessionInViewFilter

    OpenSessionInViewFilter个人学习总结

    过滤器对于session周期的控制

    但是,如果设置为`false`,则每次执行数据库操作时都会创建一个新的Session,这可能导致性能问题以及难以管理的Session生命周期。 #### 总结 综上所述,`OpenSessionInViewFilter`是Spring提供的一个强大工具,...

    Open_Session_In_View详解.doc

    为了解决这一问题,Spring框架提供了`Open Session In View`机制,这是一种简便而有效的解决方案。它能够在Web请求的整个生命周期内保持`Hibernate session`处于打开状态,从而支持懒加载数据的获取,无需在应用层...

    懒加载异常解决.docx

    - 在高并发场景下,需要注意OpenSessionInViewFilter可能会导致的性能问题,因为它使得Session的生命周期变长,增加了Session占用资源的时间。 - 如果项目中同时使用了其他Session管理机制,需要确保它们之间不会...

    Spring hibernate opensessioninview

    该模式的核心在于通过Spring提供的`OpenSessionInViewFilter`过滤器,在视图渲染过程中保持Hibernate Session的打开状态,从而简化了事务管理,并避免了一些常见的懒加载异常。 #### 一、OpenSessionInViewFilter...

    使用Spring引起的错误

    这个问题通常发生在使用Spring提供的Open Session In View模式时。 #### Open Session In View 概念 Open Session In View是一种在Spring框架中常用的技术,用于简化Hibernate中的懒加载(lazy loading)机制。通过...

    Hibernate事务管理.

    当请求处理完毕后,通过`OpenSessionInViewFilter`或`OpenSessionInViewInterceptor`,Session会在合适的时机被自动关闭,释放资源。 `OpenSessionInViewInterceptor`是在Spring的MVC环境中配置的拦截器,它需要在`...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    解决这个问题的方法有两种:一种是在 web.xml 中使用 Spring 提供的 OpenSessionInViewFilter,另一种是在 application.xml 中配置 OpenSessionInViewFilter。前者通用,后者只能用于 SpringMVC 结构中。 最后,...

    OpenSessionInView项目整合jar包

    这个模式的主要目的是解决在HTTP请求处理过程中,由于Session范围内的Hibernate Session关闭导致的数据访问异常。OpenSessionInView模式确保在整个HTTP请求生命周期内,数据库操作都在一个开放的Hibernate Session中...

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

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

    spring监听器

    关键配置点在于指定过滤器类`org.springframework.orm.hibernate3.support.OpenSessionInViewFilter`,以及通过`&lt;url-pattern&gt;`指定过滤器的生效范围,例如`*.html`表示所有以.html结尾的URL都会经过该过滤器的处理...

    Hibernate 与 MyFaces的整合

    - **细粒度控制**:确保Session和事务的控制符合应用的具体需求,避免不必要的资源浪费或并发问题。 - **异常处理**:在自动处理机制中,应充分考虑异常情况,确保即使在请求失败的情况下也能正确释放资源。 - **...

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

    为了解决这个问题,Spring提供了一个过滤器 `OpenSessionInViewFilter` 或者 `OpenSessionInViewInterceptor`,通常简称为OSIV(Open Session In View)模式。 OSIV模式的核心思想是在Controller层和View层之间保持...

    HIBERNATE4开发文档,HIBERNATE4的变化

    为了解决这个问题,可以添加`OpenSessionInViewFilter`过滤器,确保在视图渲染期间保持session打开。 5. **分页查询的注意事项** - Hibernate4中,如果你在进行分页查询时遇到“ResultSet may only be accessed in...

    三大框架整合常见问题

    - 在上述代码片段中,使用`OpenSessionInViewFilter`过滤器来实现Session的自动开启和关闭。 **示例代码:** ```xml &lt;filter-name&gt;hibernateFilter org.springframework.orm.hibernate3.support....

    Spring提供的CharacterEncoding和OpenSessionInView功能

    在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`OpenSessionInViewFilter`,它们对于解决特定问题至关重要。 首先,让我们深入了解一下`CharacterEncodingFilter`。在Web应用中,字符...

    我的智囊团(SSH)_04_开发提问及回复功能_上

    OpenSessionInViewFilter的主要作用是在HTTP请求的生命周期内保持一个Hibernate的Session,确保在视图层(例如JSP页面)也能访问到数据库会话,解决了“懒加载”问题,避免了因为请求结束而关闭Session导致的数据...

    hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法

    为了解决这个问题,我们可以使用 Spring 提供的一个支持类OpenSessionInViewFilter,这个类可以在发起一个页面请求时打开 Hibernate 的 Session,并保持这个 Session 的生命周期,直到这个请求结束。这样可以确保 ...

    S2SH集成 案例

    在这个案例中,Hibernate的SessionFactory可能被Spring管理,通过OpenSessionInViewFilter来保证每个HTTP请求都有一个活跃的Hibernate Session,从而解决延迟加载问题。 OpenSessionInViewFilter是一个重要的组件,...

Global site tag (gtag.js) - Google Analytics