`
海盗大哥
  • 浏览: 63681 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate的load get方法 与 lazy 属性结合说明

阅读更多
get-->session缓存-->二级缓存-->数据库
结果:null 或实体对象
               
              存在---->(不发生查询)得到实体对象
load-->session缓存---->数据库(数据库中没有)报错
              不存在--->代理对象
结果:错误 或 代理类 或 实体类

总结:get方法(缓存没有这个对象时)它总是发生了查询 并且不报错
      load方法(用时总是要未卜先知的知道数据库是有这样的对象存在)并且一开始它就给自己来了个延时加载..当真正用到里面属性时 发生查询(代理对象的情况) 不发生查询(实体对象)

lazy (注意:前提是当发生某个查询时)是否级联把它的属性内容 set list集合也查出来了..

总结:总之要把load get方法 与 lazy 属性分开讨论!!
这里还要注意的是:用load get 方法以后 要特别注意session是否关闭了
通常关闭后 所有对象都是游离 或 新生态了再用这个对象,当可能发生查询的情况下,特别要注意及时的跟session关联 一般用 update方法就OK了...
1.0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics