Web程序中的懒加载异常说明及解决方案
2014-12-30 11:44
239 查看
所谓懒加载(lazy)就是延时加载,延迟加载。 什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。 至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限,为了减少并发量,减少系统资源的消耗, 我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。懒加载的异常有很多种,你指的是不是session已经关闭的异常?因为那个初学者最容易遇到 情况是当你加载出一个一对多关系的一这端的对象,然后在出了事务之后的地方,比如页面上,还想再获取多端对象里面的除了id以外的属性的时候,就会跑出这个异常。 我举个例子,你有一个Grade对象关联了很多Student对象,并且用的是懒加载 你在service里面通过数据库查询获得了一个Grade对象,这个对象里面有一个Set<Student>students集合,但是你并没有对这个对象做进一步的处理(比如intialize之类的操作让懒加载的代理对象真正去实例化) 然后你到了页面的展示的时候,去遍历students这个集合,并且你试图在页面上显示每个student的name属性(这个属性不是studentId)这个时候就会抛出session已经关闭的异常 在SSH框架中:可直接可以使用OpenSessionInViewFilter
在配置文件中配置
<filter-name>opensession</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> <filter-mapping> <filter-name>opensession</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
相关文章推荐
- Android高效加载大图,多图解决方案,有效避免程序OOM异常
- membership 启用 roleManager 抛出异常:未能加载文件或程序集MySql.Web
- 在AE二次开发中出“正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”异常解决方案
- java程序中的延时加载异常及解决方案
- 关于Web项目出现懒加载异常的解决方案
- WIN7 IIS Default Web Site 无法启动,提示另一个程序正在使用,异常来自HRESULT:0x80070020 解决方案
- Web应用程序中Hibernate的懒加载异常说明及解决方案
- WEB程序需要打印格式页面时解决方案汇总
- 在本地我们调试运行AJAX.NET程序完全没有问题,但是一旦上传到服务器就会出现很多Web.config文件异常
- B/S程序中WEB打印的完美解决方案
- WEB程序需要打印格式页面时解决方案汇总
- iis无法加载程序解决方案
- spring WEB MVC + Spring + hibernate开发web程序的配置说明和简单实例的详细说明
- 程序的多语言支持解决方案(WinForm+WebForm)
- Oracle 10g 异常:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 解决方案
- Oracle 10g 异常:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 解决方案
- DLL中用malloc分配了一块内存,但是在exe程序中释放引发的错误:其原因可能是堆被损坏,这也说明 **.exe 中或它所加载的任何 DLL 中有 bug。
- B/S程序中WEB打印的完美解决方案
- 在不同解决方案之间,或者使用反射加载程序集,怎样使程序进入实时调试模式?
- [dotNET]用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法