`

Hibernate LazyInitializationException在spring中解决办法

    博客分类:
  • java
阅读更多
当发生LazyInitializationException时,需要使用Hibernate.initlize,但在spring的 HibernateDAOSupport中取出的对象,进行Hibernate.initlize时会被告知,session已经关闭。只能在 Spring封装的Hibernate操作内部进行。



java 代码
  1. return (MyEntity)getHibernateTemplate().execute(    
  2.    new HibernateCallback(){    
  3.       Object doInHibernate(Session session){   
  4.          MyEntity entiy = (MyEntity)session.load(MyEntity.class,id);  
  5.          Hibernate.initlize(entity.getMySub());  
  6.          return entity;  
  7.       }    
  8.    }    
  9. ); 
分享到:
评论
5 楼 bitlong 2007-03-18  
maping的时候,设置lazy=false就可以了。
另外Hibernate.initlize(entity.getMySub());最好放到Service这层来做,不同的Service的方法,不是都需要Hibernate.initlize(entity.getMySub());
4 楼 卒子99 2007-03-18  
用这个无非就是想得通过延迟加载的集合嘛,直接调用集合对象的size()方法,就可以了
3 楼 kj23 2007-03-18  
Hibernate.initlize
使用这个会是代码和hibernate绑定在一起
2 楼 jasongreen 2007-03-18  
  thanks
1 楼 lococode 2007-03-17  
我想似乎你可以关注一下:
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

呵呵,此方法仍然会有一些问题,但已经是此问题比较好的解决方案了。

相关推荐

    spring hibernate security整合

    在Java Web开发中,Spring、Hibernate和Spring Security是三个非常重要的框架。Spring作为一个全面的开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Hibernate则是一个强大的对象关系映射(ORM)工具...

    集成spring的hibernate懒加载

    在Java的Web开发中,Spring框架与Hibernate的整合是常见的数据访问层实现方式。Spring提供了强大的依赖注入(DI)和AOP(面向切面编程)功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,它使得Java开发者...

    Hibernate延迟加载以及利用Spring

    在给定的内容中,展示了如何在Spring框架下使用Hibernate。具体包括以下几个方面: 1. **DAO层实现**: ```java public Emp findById(java.lang.Long id) { try { Emp instance = (Emp) getHibernateTemplate()...

    hibernate,struts,spring 常见错误信息

    SSH,即Spring、Struts和Hibernate的组合,是Java开发中的经典企业级应用框架,用于构建高效、可扩展的Web应用程序。这三种技术在实际使用过程中可能会遇到各种错误,了解并解决这些错误对于开发者来说至关重要。 ...

    hibernate的延迟检索在轻量级J2EE框架中的应用

    在轻量级J2EE框架中,如Spring+Hibernate,延迟加载机制的应用非常普遍。以下是一些关键点: - **Spring集成**:Spring可以很好地集成Hibernate,通过Spring的事务管理器,可以更好地控制事务边界,同时利用Spring...

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

    SSH整合是Java Web开发中的一种经典技术栈,包括Spring、Struts和Hibernate三个核心框架。这个项目是一个基于最新版本SSH的示例应用,具体为Hibernate 5.2.3、Struts 2.5.2和Spring 4.3.3的集成。以下是关于SSH整合...

    hibernate延迟加载解决

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在大型项目中,由于数据量庞大,为了提高性能和减少数据库的负载,Hibernate引入了“延迟加载”...

    SSH中spring的作用

    SSH框架,全称为Spring、Struts和Hibernate,是Java开发中常见的三大开源框架的组合。它们各自承担着不同的职责,共同构建出高效、模块化的Web应用程序。 Spring框架在SSH中的核心作用是作为管理容器,它实现了...

    Spring-Data-JPA-using-Hibernate:使用Hibernate eclipse项目的Spring Data JPA

    下面将详细介绍Spring Data JPA与Hibernate的整合,以及如何在Eclipse环境中设置和使用它们。 1. **Spring Data JPA简介** Spring Data JPA是Spring框架的一部分,旨在通过简单的接口定义,减少开发人员编写JPA...

    Maven构建全栈式Flex、BlazeDS和Spring集成解决方案–第二部分_编写to-do_list服务器端

    值得注意的是,虽然`TodoItem`类同时作为参数和返回值类型出现,但在实际项目中,当`TodoItem`类包含集合类型的属性时,这种做法可能会引发`LazyInitializationException`异常,这是因为Hibernate延迟加载机制导致的...

    Hibernate配置常见错误

    解决方案:确保实体类已添加@Entity注解,并且该类所在的包已被配置在hibernate.cfg.xml中的`实体类路径"/>`或`实体类所在包名</package-name>`中。 三、数据库连接问题 错误表现:如“org.hibernate.exception....

    错误及解决方案.pdf

    文档内容主要涉及到JavaEE Web应用开发中,特别是在使用Hibernate框架和Spring框架集成时遇到的错误及其解决办法。内容中多次提及了“lazy initialization”异常,这通常发生在尝试访问一个被延迟加载的集合时,但是...

    spring学习笔记

    `OpenSessionInViewFilter` 是一个解决在 Web 应用中懒加载数据时遇到的 Hibernate 问题的过滤器,确保每个 HTTP 请求都在一个 Hibernate 会话范围内,从而避免 LazyInitializationException。 **Spring JDBC 面向...

    使用Spring引起的错误

    ### 使用Spring引起的错误:Write ...通过以上解决方案和配置示例,可以有效地解决在使用Spring框架和Hibernate时出现的“Write operations are not allowed in read-only mode (FlushMode.NEVER)”这一问题。

    struts2整合hibernate

    在这个过程中,我们可以使用Spring框架来管理Action的生命周期,同时实现依赖注入,以便Action可以直接注入Hibernate的SessionFactory。 接下来是数据库配置。在Hibernate的配置文件`hibernate.cfg.xml`中,我们...

    ssh 学习笔记

    Spring中的IoC容器负责创建对象,管理对象的生命周期,配置对象的属性等。此外,Spring AOP提供了面向切面编程的支持,可以将通用业务逻辑如日志、事务管理等从业务逻辑代码中分离出来。 在SSH学习笔记中,提到了...

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

    当我们在 Hibernate 中使用懒加载特性时,可能会遇到 LazyInitializationException 异常,这是因为 Hibernate 的 Session 生命周期太短,导致了懒加载失败。 为了解决这个问题,我们可以使用 Spring 提供的一个支持...

    无处不在的Spring AOP事务及踩过的坑

    在Spring中,AOP通过代理模式实现,可以是JDK动态代理或CGLIB代理,它们会在方法调用前后插入额外的代码(即切面)。 接下来,我们讨论Spring的声明式事务管理。在Spring应用中,可以通过XML配置或注解来声明事务...

    Java常见异常集-Java,Hibernate,Tomcat异常

    在Java编程中,异常处理是不可或缺的一部分,尤其是在开发复杂的企业级应用时,如使用Hibernate进行对象关系映射和Tomcat作为应用服务器。本篇将详细解释一些常见的Java、Hibernate以及与Tomcat相关的异常,帮助...

    三大框架整合常见问题

    在Java Web开发领域中,SSH(Struts + Spring + Hibernate)是一种非常流行的组合方式,它结合了Struts视图层的灵活性、Spring业务逻辑层的强大管理能力和Hibernate持久化层的高效性。然而,在实际开发过程中,由于...

Global site tag (gtag.js) - Google Analytics