1.用json时hibernate的session已关闭问题:
使用spring提供的opensessioninview功能,在web.xml中做相应的配置;注意在执行sql语句时一定要用spring封装的API,如getHibernateTemplate().find()。
2.用json时出现数据定位不正确和内存溢出问题:
数据定位不正确的原因是hibernate延迟加载时生成了临时属性,而json在序列化bean是会将所有属性都序列化,导致出现该问题;
而内存溢出是因为hibernate映射关系级联查询链太长或出现循环导致json在序列化是占用了大量内存。解决办法为在bean中把不需要序列化的属性(一般为所有set类型的属性,即存在外键关系的属性)的getter方法加上@JSON(serialize=false)让json不序列化这些属性。
http://704378737-qq-com.iteye.com/blog/985527
http://ariyue.iteye.com/blog/445856
分享到:
相关推荐
- **异常处理**:如果在使用延迟加载的过程中关闭了Session,那么在尝试访问延迟加载的对象时会抛出`LazyInitializationException`异常。 ```java Exception in thread "main" org.hibernate....
- **网络延迟**:虽然延迟加载可以减少内存使用,但在分布式环境中可能会增加网络延迟。 - **事务管理**:在某些情况下,延迟加载可能会影响事务的一致性,需要特别注意事务边界。 - **并发问题**:如果在多线程环境...
详细介绍hibernate延迟加载,对hibernate初学者有一定的帮助
这是因为,如果不使用延迟加载,加载一个实体可能会导致所有相关联的实体都被加载到内存中,从而严重影响性能。 **配置方式:** 要启用集合类型的延迟加载,需要在映射文件中为集合元素添加`lazy="true"`属性,...
在实际运行中,当我们通过`session.get(Person.class, 1)`获取一个`Person`对象时,如果没有明确地访问`addresses`,Hibernate只会加载`Person`的基本信息,而不会加载与之关联的`Address`集合。在调试模式下,我们...
【hibernate 延迟加载】 在Java的持久化框架Hibernate中,延迟加载(Lazy Loading)是一种优化数据库访问性能的技术。它允许我们在需要时才加载关联的对象,而不是在初始查询时就一次性加载所有数据。这有助于减少...
Hibernate延迟加载机制.zip
《Hibernate延迟加载详解》 Hibernate作为Java领域中的一个强大的对象关系映射框架,提供了许多优化数据库操作的策略,其中之一便是延迟加载(Lazy Loading)。延迟加载机制旨在减少不必要的性能消耗,只在真正需要...
### Hibernate延迟加载详解 #### 什么是Hibernate延迟加载? 在探讨Hibernate延迟加载之前,我们先简要回顾一下Hibernate框架。Hibernate是一种流行的Java持久层框架,它提供了对象关系映射(ORM)的功能,允许...
代理对象在真正需要数据时才会加载。 - 适用于懒加载的单向关联,即只有主对象持有对关联对象的引用。 9. **"NO-proxy" Fetching**: - 不使用代理对象,而是直接加载实体对象。 - 适用于不需要代理层的情况。 ...
### Hibernate的延迟加载详解 #### 实体对象的延迟加载 延迟加载是Hibernate中一项关键的优化技术,旨在减少不必要的数据库交互,从而提升应用程序的性能。其实现原理在于,只有当确实需要访问某个对象或集合的...
### Hibernate延迟加载详解 #### 一、概述 Hibernate 是一种常用的 Java 持久层框架,它能够将 Java 应用程序与底层数据库之间建立桥梁,简化数据访问逻辑。为了提高应用程序性能,Hibernate 提供了多种优化手段,...
Hibernate延迟加载是ORM框架Hibernate中的一个重要特性,它旨在提高应用程序的性能和效率。延迟加载(Lazy Loading)策略允许我们仅在需要访问一个对象或其属性时才从数据库加载它们,而不是在初始加载实体时就一次...
需要注意的是,如果在事务之外尝试访问延迟加载的集合,将会抛出 `LazyInitializationException`,因为此时 Hibernate Session 已经关闭,无法执行数据库查询。为了避免这种情况,可以考虑使用 Eager Loading(即...
在开发Flex与Hibernate集成的应用时,延迟加载(Lazy Loading)是一个常见的挑战,因为Flex客户端无法直接理解和处理Hibernate的延迟加载机制。延迟加载是一种优化策略,它允许关联的对象在真正需要时才被加载,而...
结合以上技术,"struts2+spring+hibernate+jquery+json"的整合使用意味着开发一个完整的、高效的Web应用。Struts2负责处理HTTP请求并调用业务逻辑,Spring提供依赖管理和数据访问支持,Hibernate作为持久化层与...