-
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
相关推荐
OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问层(DAO)与视图层(View)之间的事务管理问题。在Web应用中,由于HTTP请求的无状态性,一次请求通常由多个Servlet过滤器、控制器和...
OpenSessionInViewFilter个人学习总结
但是,如果设置为`false`,则每次执行数据库操作时都会创建一个新的Session,这可能导致性能问题以及难以管理的Session生命周期。 #### 总结 综上所述,`OpenSessionInViewFilter`是Spring提供的一个强大工具,...
为了解决这一问题,Spring框架提供了`Open Session In View`机制,这是一种简便而有效的解决方案。它能够在Web请求的整个生命周期内保持`Hibernate session`处于打开状态,从而支持懒加载数据的获取,无需在应用层...
- 在高并发场景下,需要注意OpenSessionInViewFilter可能会导致的性能问题,因为它使得Session的生命周期变长,增加了Session占用资源的时间。 - 如果项目中同时使用了其他Session管理机制,需要确保它们之间不会...
该模式的核心在于通过Spring提供的`OpenSessionInViewFilter`过滤器,在视图渲染过程中保持Hibernate Session的打开状态,从而简化了事务管理,并避免了一些常见的懒加载异常。 #### 一、OpenSessionInViewFilter...
这个问题通常发生在使用Spring提供的Open Session In View模式时。 #### Open Session In View 概念 Open Session In View是一种在Spring框架中常用的技术,用于简化Hibernate中的懒加载(lazy loading)机制。通过...
当请求处理完毕后,通过`OpenSessionInViewFilter`或`OpenSessionInViewInterceptor`,Session会在合适的时机被自动关闭,释放资源。 `OpenSessionInViewInterceptor`是在Spring的MVC环境中配置的拦截器,它需要在`...
解决这个问题的方法有两种:一种是在 web.xml 中使用 Spring 提供的 OpenSessionInViewFilter,另一种是在 application.xml 中配置 OpenSessionInViewFilter。前者通用,后者只能用于 SpringMVC 结构中。 最后,...
这个模式的主要目的是解决在HTTP请求处理过程中,由于Session范围内的Hibernate Session关闭导致的数据访问异常。OpenSessionInView模式确保在整个HTTP请求生命周期内,数据库操作都在一个开放的Hibernate Session中...
OpenSessionInView(OSIV)模式是SSH整合中常见的一种优化策略,它在用户的一次HTTP请求过程中保持Hibernate Session,避免了多次打开和关闭Session,减少了N+1查询问题,提高了性能。 **Spring** 是一个全面的企业...
关键配置点在于指定过滤器类`org.springframework.orm.hibernate3.support.OpenSessionInViewFilter`,以及通过`<url-pattern>`指定过滤器的生效范围,例如`*.html`表示所有以.html结尾的URL都会经过该过滤器的处理...
- **细粒度控制**:确保Session和事务的控制符合应用的具体需求,避免不必要的资源浪费或并发问题。 - **异常处理**:在自动处理机制中,应充分考虑异常情况,确保即使在请求失败的情况下也能正确释放资源。 - **...
为了解决这个问题,Spring提供了一个过滤器 `OpenSessionInViewFilter` 或者 `OpenSessionInViewInterceptor`,通常简称为OSIV(Open Session In View)模式。 OSIV模式的核心思想是在Controller层和View层之间保持...
为了解决这个问题,可以添加`OpenSessionInViewFilter`过滤器,确保在视图渲染期间保持session打开。 5. **分页查询的注意事项** - Hibernate4中,如果你在进行分页查询时遇到“ResultSet may only be accessed in...
- 在上述代码片段中,使用`OpenSessionInViewFilter`过滤器来实现Session的自动开启和关闭。 **示例代码:** ```xml <filter-name>hibernateFilter org.springframework.orm.hibernate3.support....
在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`OpenSessionInViewFilter`,它们对于解决特定问题至关重要。 首先,让我们深入了解一下`CharacterEncodingFilter`。在Web应用中,字符...
OpenSessionInViewFilter的主要作用是在HTTP请求的生命周期内保持一个Hibernate的Session,确保在视图层(例如JSP页面)也能访问到数据库会话,解决了“懒加载”问题,避免了因为请求结束而关闭Session导致的数据...
为了解决这个问题,我们可以使用 Spring 提供的一个支持类OpenSessionInViewFilter,这个类可以在发起一个页面请求时打开 Hibernate 的 Session,并保持这个 Session 的生命周期,直到这个请求结束。这样可以确保 ...
在这个案例中,Hibernate的SessionFactory可能被Spring管理,通过OpenSessionInViewFilter来保证每个HTTP请求都有一个活跃的Hibernate Session,从而解决延迟加载问题。 OpenSessionInViewFilter是一个重要的组件,...