在hibernate中,延迟加载是1个非常大的优点,但有时候却给我们带来一些小麻烦,在后台查询结束后,session已经关闭,但在前台显示的时候,如果存在关联关系就会产生延迟加载异常。
解决办法是客户端每次请求就分配1个session,将请求结果返回给客户端,并完成展现后关闭session。
实现这个功能非常简单,在web.xml中加入以下配置
<filter>
<filter-name>hibernateFilter</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>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
使用spring提供这个过滤器就可以实现session的集中管理了,所有以.do结尾的请求都自动分配了1个session,并且在这个请求过程中都使用这个session.
分享到:
相关推荐
Hibernate提供了延迟加载机制,可以在真正需要数据时才将其加载到内存中,从而节省服务器的内存开销。Hibernate的延迟加载机制可以分为两种: 1. 实体对象的延迟加载 2. 集合的延迟加载 Hibernate的映射关系 ...
5. **Hibernate的延迟加载(Lazy Loading)** - 延迟加载允许在需要时才加载关联对象,提高性能。例如,只在访问实体属性时才加载其关联的数据。 6. **实现类间关系** Hibernate支持多种关系映射,如一对一...
总结,这个"spring+hibernate代码实例集"涵盖了Spring和Hibernate的集成应用,包括关系映射、事务管理和延迟加载等核心概念。通过实际的代码示例,开发者可以深入理解并掌握这些技术,提升Java后端开发的能力。
Hibernate通过以下方式实现延迟加载: - **使用懒加载代理**:对于一对多或多对多的关系,Hibernate会在需要的时候动态创建代理对象。 - **OpenSessionInView模式**:这是一种解决懒加载异常的有效方案,通过确保...
2. **Hibernate 3 及以上版本**:除了实体和集合的延迟加载外,还支持属性级别的延迟加载。即只有在程序真正需要某个属性时才会加载该属性。 **优点**:延迟加载可以显著减少服务器内存占用,提高服务器性能。 ###...
在Java Web开发中,Struts、Spring和Hibernate是最常见的三大框架,它们各自承担着不同的职责。以下将分别介绍这些框架的核心概念以及在面试中可能涉及的知识点。 1. Struts作为MVC框架,负责控制层的处理。MVC模式...
Hibernate的延迟加载(Lazy Loading)特性是其一大亮点,它可以减少内存占用,提高性能。例如,当获取一个实体对象时,与其关联的集合默认不会立即加载,而是在第一次访问时才加载,这就是延迟加载。 类之间的关系...
3. **实体生命周期管理**:支持了预加载(pre-fetching)和延迟加载(lazy-loading),以及更灵活的实体状态管理,比如“脱管”(detached)状态。 4. **更丰富的类型支持**:包括对数组、集合和自定义类型的支持,...
- **Hibernate的懒加载和即时加载**,`@Lazy`注解用于实现延迟加载,提高性能。 - **Spring的 profiles**,通过`@Profile`注解,可以针对不同的环境(如开发、测试、生产)启用或禁用特定的bean。 总之,基于Spring...
#### 三、Hibernate 延迟加载机制 **3.1 原理介绍** - **Hibernate2**:支持实体对象和集合的延迟加载。 - **Hibernate3**:引入了属性级别的延迟加载。 - **延迟加载机制**:只有当程序真正需要访问数据时,才会将...
Hibernate 延迟加载配置 - **实体属性**:标记为懒加载以提高性能。 - **集合属性**:对于多对多或一对多关系使用懒加载。 #### IX. 结论 本文档提供了一个关于如何使用 Tapestry5、Spring 和 Hibernate 构建 ...
Hibernate的延迟加载与OpenSessionInView - **延迟加载**:在session范围内,仅在实际需要时加载关联对象的数据,提高性能。 - **OpenSessionInView**:在Web层通过Filter保持session的打开状态,直到请求结束,...
Hibernate的二级缓存和延迟加载机制也有助于优化性能。 此外,这三大框架的集成是通过Spring的ApplicationContext进行的,它可以管理和协调Struts和Hibernate的配置,实现各组件之间的无缝连接。Spring的AOP还可以...
6. **懒加载和Eager加载**:优化性能的技术,懒加载延迟关联对象的加载,而Eager加载会在查询时一起加载关联对象。 **Struts框架:** 1. **MVC模式**:Struts是基于Model-View-Controller设计模式的,负责协调用户...
### Hibernate延迟加载以及利用Spring #### 一、Hibernate延迟加载概念与原理 在理解Hibernate的延迟加载机制之前,我们首先需要了解什么是延迟加载。延迟加载(Lazy Loading)是一种设计模式,其核心思想是在真正...
它支持延迟加载、缓存机制、多态性等特性,极大地提高了开发效率。 当这三个框架集成在一起时,Struts作为前端控制器,负责接收用户请求并转发到相应的业务逻辑。Spring作为整个应用的中枢,管理对象的生命周期和...
Hibernate还支持二三级缓存、延迟加载等高级特性,提高了数据访问的性能。 在这个集成项目中,开发者可以利用Spring3来管理所有组件的生命周期,SpringMVC处理Web请求,而JPA2.0和Hibernate负责数据库操作。这样的...
Hibernate支持事务管理,自动处理SQL语句的生成和执行,还可以进行延迟加载,提升了应用性能。 **ExtJs** 是一个用于构建用户界面的JavaScript库,它提供了丰富的组件库,如表格、图表、窗体等,使得开发者可以创建...
在这个版本中,优化了性能,增加了对延迟加载的控制,以及对多线程环境的支持。在Spring与Hibernate整合时,Spring可以管理SessionFactory和Session的创建,提供事务管理,从而减少代码中的资源管理负担。 再者,...