为什么80%的码农都做不了架构师?>>>   

首先介绍get()和load()方法的区别:

get()方法和load()方法的区别主要在于对二级缓存的使用上。

load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。

get():如果在数据库中没有记录会返回空,get()无论如何都会返回数据.

load():如果数据库中没有记录会抛出异常,如果有数据返回的是一个代理对象。

get()方法默认不支持lazy(延迟加载)功能,而load支持延迟加载

get()方法在查询不到数据时,返回null,而load因为支持延迟加载,只有在使用对象时才加载,所以如果数据库中不存在在数据load会抛出异常(org.hibernate.ObjectNotFoundException)。

get()和load()只根据主键查询,不能根据其它字段查询,如果想根据非主键查询,可以使用HQL

list和iterator()方法之间的区别:(N+1?)

list()方法在执行时,直接运行查询结果所需要的查询语句。

iterator()方法则是先执行得到对象ID的查询,然后在根据每个ID值去取得所要查询的对象。

因此:对于list()方式的查询通常只会执行一个SQL语句,而对于iterator()方法的查询则可能需要执行N+1条SQL语句(N为结果集中的记录数).

结果集的处理方法不同:

list()方法会一次活的所有的结果集对象,而且他会依据查询的结果初始化所有的结果集对象。如果在结果集非常庞大的时候会占据非常多的内存,甚至会造成内存溢出的情况发生。

iterator()方法在执行时不会一次初始化所有的对象,而是根据对结果集的访问情况来初始化对象。一次在访问中可以控制缓存中对象的数量,以避免占用过多的缓存,导致内存溢出情况的发生。

转载于:https://my.oschina.net/hcliu/blog/394995

Hibernate (load PK get and list PK iterator )相关推荐

  1. Strust2 + Hibernate load方法出现的错误

    在学习strust2+Hibernate的时候,使用load方法返回实例抛出异常: java.lang.ClassCastException: com.myj.bbs2009.model.Catego ...

  2. hibernate加载持久化对象的两种方式---------------load方式和get方式

    2019独角兽企业重金招聘Python工程师标准>>> 参考:http://my.oschina.net/u/1169535/blog/282483 1. Hibernate get ...

  3. adf4351_在ADF实体PK属性中使用MySQL自动增量PK列

    adf4351 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果我们使用的是Oracle数据库,则可 ...

  4. ETL工具调度之中美PK

    ETL调度工具中美PK ( TASKCTL VS Control-M) 美方:Control-M  ( www.bmc.com) 中方:TASKCTL  ( www.taskctl.com ) 毫无疑 ...

  5. adf 自动输稿器_在ADF实体PK属性中使用MySQL自动增量PK列

    adf 自动输稿器 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果使用的是Oracle数据库,则可 ...

  6. 在ADF实体PK属性中使用MySQL自动增量PK列

    大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到要使用MySQL PK自动增量列和ADF实体PK属性来进行的工作. 如果使用的是Oracle数据库,则可以使用oracle.jbo. ...

  7. 直播带货app源码,实现直播连麦和PK

    一.概述 连麦:是指直播带货app源码中,由观众向主播发起连线请求,在主播和该观众之间建立低延迟的通讯链路,而其他观众可以看到"主播+连麦观众"的合成音视频内容. PK:是指直播过 ...

  8. 直播搭建主播pk,如何实现无缝切换?

    直播搭建主播pk,如何实现无缝切换? 今天要介绍的就是主播连麦PK方案,通过这篇文章,我们将一起来了解什么是主播连麦PK?以及怎么快速实现主播间的连麦PK? 什么是连麦PK? 连麦PK就是正在直播中的 ...

  9. java编程实现人物对打_Java Lab(1)控制台下的人物PK

    一.前言 有这样一个念头很久了,从最早对编程感兴趣就是因为想实现一个类似于街霸.拳皇之类的程序.一路走过来,发现作为一个主业和编程毫无关系的人想学编程,真的是很费心很吃力,而在应用无比泛滥的今天,对于 ...

  10. 直播系统app源码经验分享——直播系统PK功能介绍

    直播平台发展至今,PK功能成为必不可少的功能.相较于传统的互动送礼打赏,PK功能是如何一步步引领全新直播潮流的呢? 首先我们要知道PK功能存在的现实意义--由传统的单人内容产出到双人甚至多人互动内容产 ...

最新文章

  1. usaco Hamming Codes
  2. 你知道 Redis 可以实现延迟队列吗?
  3. vue webpack 自动打开页面_vue中webpack技术详解
  4. DotNetNuke的升级路径
  5. mysql-表记录之增删改操作
  6. java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
  7. python代码加密cython_python通过cython实现加密
  8. 数据转换软件公司——HYFsoft
  9. Intel笔记本处理器发展简史(二)
  10. Kavex GameDev-Resources
  11. java创建http接口
  12. kd树的构造和搜索(超详细)
  13. 讲教资备考时间和精力
  14. Cocos2d-js 音乐or音效
  15. mysql 修改校对规则_调整MYSQL校对规则
  16. 功能测试之电梯的测试用例【杭州多测师】【杭州多测师_王sir】
  17. 404-Thenbsp;requestednbsp;reso…
  18. 解决MATLAB2018b打开m文件后注释乱码的问题
  19. css 文本超出就隐藏并且显示省略号
  20. 白杨SEO:谈谈我理解的品牌,个人与企业品牌的区别

热门文章

  1. 在iphone开发中的get请求和post请求
  2. C盘空间太小,建议删除如下文件以释放空间!
  3. 2019牛客多校第二场E MAZE(线段树 + 矩阵)题解
  4. 关于文件的工具类例子
  5. 蜗牛—Android基础之button监听器
  6. Qt中的串口编程之一
  7. BZOJ_1626_[Usaco2007_Dec]_Building_Roads_修建道路_(Kruskal)
  8. jstl中的日期格式化
  9. A2D JS框架 - loadScript实现
  10. 学习数学到底有什么用?