java程序中的延时加载异常及解决方案
程序员文章站
2024-03-02 20:32:46
所谓延时加载就是懒加载(lazy),延迟加载。
什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。
至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显...
所谓延时加载就是懒加载(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>
以上就是本文的全部内容了,希望小伙伴们能够喜欢。
上一篇: 小鼠全基因组数据分析
推荐阅读
-
java程序中的延时加载异常及解决方案
-
java程序中的延时加载异常及解决方案
-
Java找不到或无法加载主类及编码错误问题的解决方案
-
Java找不到或无法加载主类及编码错误问题的解决方案
-
java中的空指针异常情况以及解决方案
-
Java中遇到过的一些异常及处理
-
调用远程主机上的 RMI 服务时抛出 java.rmi.ConnectException: Connection refused to host: 127.0.0.1 异常原因及解决方案
-
深刻理解java中new一个对象的执行过程及类的加载顺序
-
调用远程主机上的 RMI 服务时抛出 java.rmi.ConnectException: Connection refused to host: 127.0.0.1 异常原因及解决方案
-
详解设计模式中的proxy代理模式及在Java程序中的实现