延迟加载

延迟加载

ID:70596265

大小:36.50 KB

页数:6页

时间:2021-11-23

延迟加载_第1页
延迟加载_第2页
延迟加载_第3页
延迟加载_第4页
延迟加载_第5页
延迟加载_第6页
资源描述:

《延迟加载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[转]hibernate的延时加载所谓懒加载(lazy)就是延时加载,延迟加载。至于为什么要用懒加载呢?就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限,为了减少并发量,减少系统资源的消耗,我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。比如:部门ENTITY和员工ENTITY,部门与员工1对多,如果lazy设置为false,那么只要加载了一个部门的po,就会根据一对多配置的关系把所有员工的po也加载出来。但是实际上有时候只是需要用到部门的信息,不需要用到员工的信息,这时员工po的加载就等于浪费资源。如果lazy设置为tr

2、ue,那么只有当你访问部门po的员工信息时候才回去加载员工的po的信息。hibernate3.0中lazy有三个值,true,false,proxy,默认的是lazy="proxy".具体设置成什么要看你的需求,并不是说哪个设置就是最好的。假如在student对象中包含一个head对象如果你确定在用student对象的时候就要用到head对象里的属性,那你就设置立即加载,因为设置立即加载那么在查询student的同时就会查询student的head,hibernate就会在查询的时候关联两张表从而生成的sql就可能只

3、有一条。而如果你设置的是延迟加载,那么肯定会要生成1+N条sql语句:其中“1”是查询student的语句,“N”是根据N个student的id去查询head的N条语句。而且,延迟加载是要用到的时候才去执行查询,这样系统判断那里需要加载,那里不需要加载也需要时间,性能上肯定就不如立即加载了!如果,你是有的地方需要用到student的时候才用到head属性,那么你就设置成延迟加载,因为查询2张表的数据肯定要比查询1张表的数据消耗大。到低要怎样设置就要看你的实际需求了延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候

4、,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。A、实体对象的延迟加载如果想对实体对象使用延迟加载,必须要在实体的映射配置文件中进行相应的配置,如下所示:<hibernate-mapping> <classname=”com.neusoft.entity.User”table=”user”lazy=”true”> …… </class></hibernat

5、e-mapping> 通过将class的lazy属性设置为true,来开启实体的延迟加载特性。如果我们运行下面的代码:   Useruser=(User)session.load(User.class,”1”);(1)   System.out.println(user.getName());(2)  当运行到(1)处时,Hibernate并没有发起对数据的查询,如果此时通过一些调试工具,观察此时user对象的内存快

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。