码迷,mamicode.com
首页 > 系统相关 > 详细

Hibernate懒加载异常解决方案总结

时间:2014-08-12 03:36:14      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:懒加载、opensessioninview、hibernate、异常

【什么是Hibernate懒加载异常】

    我们所说的懒加载也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的时候才会访问数据库,可以有效的降低数据库访问次数和内存使用量。懒加载为Hibernate中比较常用的特性之一,Hibernate 通过默认采取懒加载机制来降低系统的内存开销,提高系统性能。但这也使很多初学者使用Hibernate时容易出现懒加载异常。

【出现懒加载异常的原因】

    这个异常出现的原因主要是使用懒加载机制加载数据时,hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值得方法,在你使用 getXXX()调用的时候,hiberante会利用这个保存的方法去从数据库中取数据。而往往我们在jsp页面中使用getXXX()准备展示数据的时候,而此时session已关闭,所以就会出现异常,如图所示:

bubuko.com,布布扣

【懒加载异常解决方案】

    1、lazy设成false,

    利用lazy=false来解决问题,这种方法是很好用,但是在实际的过程并不实用,因为这就不能使用懒加载带来的好处了,违背了Hibernate默认使用懒加载的初衷。

    2、自己写过滤器,实现OpenSessionInView。

bubuko.com,布布扣


    3、使用Spring提供的OpenSessionInViewFilter过滤器

bubuko.com,布布扣

        4、使用Spring提供的OpenSessionInViewInterceptor

bubuko.com,布布扣


Hibernate懒加载异常解决方案总结,布布扣,bubuko.com

Hibernate懒加载异常解决方案总结

标签:懒加载、opensessioninview、hibernate、异常

原文地址:http://745761505.blog.51cto.com/9241055/1538735

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!