`
zelly
  • 浏览: 1324 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate 懒加载失败

    博客分类:
  • java
阅读更多

    关注javaeye已经一年多了,可是一直没有机会写一篇日志。今日有心也不怕各位大牛笑话的写了一篇日志。希望对初学strtus、hibernate、spring者有一定的帮助。

    有关懒加载,我也不再介绍。我相信只要用过hibernate都会对它有一定了解。在javaeye上也看到了很多类似的问题。在此我也不用重复。

    如果出现类似错误,首先检查是否在web.xml中配置了如下代码:

<filter>   
        <filter-name>opensession</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>opensession</filter-name>   
        <url-pattern>/*</url-pattern>   
</filter-mapping> 

 

  很多人在配置了以上代码,却问题依旧。这样就要做如下分析:

    每次请求,是否已经经过了 OpenSessionInViewFilter 此过滤器。如果没有经过它,那么你的配置实际上是无效的。所以,此配置我建议配置到web.xml中的第一个过滤器中,以免干扰!我越到过很多人问我,问题最终都出在这个地方。特别是加入了strtus以后。很容易出现此类问题例如如下配置:

<!-- Struts filter -->
    <filter>
        <filter-name>struts2Filter</filter-name>
        <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

StrutsPrepareAndExecuteFilter配置一定要在OpenSessionInViewFilter 之后。

原因很简单:StrutsPrepareAndExecuteFilter已经全部拦截,OpenSessionInViewFilter 将会失效!

3
0
分享到:
评论

相关推荐

    懒加载异常解决.docx

    2. **配置不当:** 没有正确配置Hibernate或其他ORM框架来支持懒加载,或者相关的过滤器和拦截器设置不正确。 3. **多线程环境下的问题:** 在多线程环境中,如果对象被多个线程共享,并且在一个线程中关闭了Session...

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

    hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法 Hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法是 Hibernate 框架中的一种常见问题。当我们在 Hibernate 中使用懒加载特性时,可能会遇到 ...

    Hibernate框架技术课件ppt

    Hibernate提供了懒加载和立即加载机制来控制关联对象的加载时机,以优化性能。 10. 批量操作与事务管理: 学习者将学习如何执行批量插入、更新和删除,以及如何使用Transaction接口进行事务控制,保证数据的一致...

    hibernate_reference.pdf

    - **懒加载**:默认情况下,Hibernate 使用懒加载策略来延迟加载实体的关联对象,从而减少不必要的数据库访问。 #### 九、高级特性 - **实体继承**:允许在继承关系中使用单表策略或多表策略。 - **组件映射**:...

    Hibernate性能优化

    4. **懒加载与立即加载**:Hibernate的懒加载机制可以推迟关联对象的加载,减少初始化时的数据量。但过度依赖懒加载可能导致N+1查询问题,因此需要合理设计实体关系和加载策略。 5. **预加载与子查询**:预加载...

    Hibernate中文参考手册

    - **懒加载与急加载**: 懒加载是指在真正需要时才加载关联对象,而急加载则是在加载主对象时一并加载关联对象,两者各有优缺点。 - **性能调优**: 包括查询优化、连接池配置等方面的内容,有助于解决生产环境中可能...

    hibernate-orm-5.0源代码

    懒加载是Hibernate的重要特性,源码中通过代理机制实现。当实体的关联属性未在初始化时加载时,只在访问时才触发数据库查询,有效降低内存占用。 通过深入学习和分析Hibernate ORM 5.0的源代码,开发者不仅能了解...

    Hibernate映射导致的几个异常

    这是Hibernate懒加载机制中的常见异常,当尝试访问一个已被关闭的Session中的懒加载属性时触发。例如,如果Session在使用`setFetchMode(FetchMode.LAZY)`后关闭,而之后又试图访问该Session管理的某个对象的懒加载...

    Java+Persistence+with+Hibernate

    - 懒加载(Lazy Loading):只在需要时加载关联对象,以提高性能。 - 级联操作(Cascading):设置关联对象的级联属性,使对父对象的操作自动应用到子对象。 八、查询与检索 1. HQL:类似于SQL,但面向对象,用于...

    hibernate压缩包

    这里可能会涉及到懒加载和级联操作的概念,例如,当获取订单时,是否立即加载关联的客户信息,以及更新订单时是否同时更新关联的客户信息。 这两个项目可能使用SessionFactory来创建Session,Session是与数据库交互...

    Hibernate配置常见错误

    总结,Hibernate配置错误主要集中在SessionFactory创建、实体类配置、数据库连接、属性映射、懒加载、HQL查询和事务管理等方面。解决这些问题需要对Hibernate的工作原理有深入理解,并熟练掌握其配置细节。通过以上...

    hibernate框架开发视频资料

    - **懒加载**:默认情况下,Hibernate会延迟加载关联对象,直到真正使用时才从数据库中加载数据,这样可以避免不必要的数据库访问,提高性能。 - **批量处理**:对于大量数据的插入、更新操作,可以使用批量处理方式...

    hibernate中文参考文档.pdf

    Hibernate提供了多种机制来优化数据库操作性能,例如二级缓存、懒加载和批量插入等。合理利用这些机制,可以显著减少数据库交互次数,提高应用的响应速度和整体性能。 ### 社区与文档 Hibernate拥有活跃的开发者...

    hibernate_ jpa.jar

    3. **懒加载(Lazy Loading)**:避免在不需要时加载关联数据,减少内存消耗。 总结来说,Hibernate JPA为Java开发人员提供了强大且灵活的ORM工具,通过简化数据库操作,使得开发者能更专注于业务逻辑。正确理解和...

    Hibernate课程的总结

    3. 合理设计实体关系,避免循环引用导致的懒加载问题。 4. 使用事务管理,确保数据一致性。 总结所述,Hibernate为Java开发者提供了强大的数据库操作工具,通过理解并熟练运用其核心概念和技术,能极大地提升开发...

    hibernate hellowrold入门级代码

    【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行...对于进一步学习,可以深入研究Hibernate的高级特性,如懒加载、缓存、级联操作以及 Criteria API 和 Criteria 查询。

    Hibernate3.0完整中文版教程.pdf

    - **懒加载**:只有当真正需要访问关联对象时才进行加载,减少了不必要的数据库访问。 - **分页查询**:支持对查询结果进行分页处理,提高查询效率。 - **事务管理**:提供了内置的事务管理机制,简化了事务处理...

    Hibernate登陆例子

    **Hibernate登录示例** 在Java Web开发中,Hibernate是一个非常重要的对象关系...在实际项目中,你可能需要进一步学习和掌握更多的高级特性,如懒加载、一对多、多对多关系映射,以及 Criteria API 和 HQL 查询等。

    hibernate技术实现的例子

    懒加载是一种延迟加载策略,当真正需要关联对象时才加载,以此提高性能。而即时加载则会在加载主对象时同时加载其关联对象。通过`@ManyToOne(fetch = FetchType.LAZY)`等注解可以设置加载策略。 9. **实体状态** ...

    Hibernate技术

    - **性能优化**:通过对象代理、懒加载和二级缓存等机制,提升了数据库访问性能。 4. **Hibernate开发环境的建立** - 获取Hibernate最新版本并解压,获取所需的jar文件,如hibernate3.jar。 - 需要额外的工具,...

Global site tag (gtag.js) - Google Analytics