码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate中的延迟加载及fetch

时间:2016-08-16 10:37:36      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:

 

 

                                                      Hibernate中的延迟加载

1.类级别的查询策略:

lazy  :  true(默认值)

            false(立即加载)

2.多对一关联的查询策略:

lazy:  proxy(默认值)

         no-proxy

         false

3.一对多  或多对多

lazy:true(默认值)

         false

         extra

 

 fetch:影响Hibernate针对底层SQL的生成

一、emp的映射文件的类级别设置非延迟加载

技术分享

技术分享

第二条会报空指针异常

技术分享

 

 二、emp的映射文件的类级别设置非延迟加载,其多对一属性也设置为非延迟加载

技术分享

 测试代码

 技术分享

 三、emp的映射文件的类级别设置非延迟加载,多对一节点设置延迟加载和fetch=“join”

技术分享

 结论1:当fetch和lazy连用的时候,设置fetch=“join”,lazy的属性会失去作用,即不再保证非延迟加载,而是即时加载

 四、当使用query接口的list()方法时,fetch=“join” lazy属性会重新生效

技术分享

技术分享

技术分享


结论:使用query接口的list()方法,fetch=“join”,lazy的属性重新生效,这也是由list本身的机制决定的,list只能往内存中放数据,不能从内存中取数据,必须强制访问数据库

 

Hibernate中的延迟加载及fetch

标签:

原文地址:http://www.cnblogs.com/hmy-1365/p/5774017.html

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