Session加载实体对象的步骤是:
① Session在调用数据库查询功能之前,首先会在一级缓存中通过实体类型和主键进行查找,如果一级缓存查找命中且数据状态合法,则直接返回;
② 如果一级缓存没有命中,接下来Session会在当前NonExists记录(相当于一个查询黑名单,如果出现重复的无效查询可以迅速做出判断,从而提升性能)中进行查找,如果NonExists中存在同样的查询条件,则返回null;
③ 如果一级缓存查询失败则查询二级缓存,如果二级缓存命中则直接返回;
④ 如果之前的查询都未命中,则发出SQL语句,如果查询未发现对应记录则将此次查询添加到Session的NonExists中加以记录,并返回null;
⑤ 根据映射配置和SQL语句得到ResultSet,并创建对应的实体对象;
⑥ 将对象纳入Session(一级缓存)的管理;
⑦ 如果有对应的拦截器,则执行拦截器的onLoad方法;
⑧ 如果开启并设置了要使用二级缓存,则将数据对象纳入二级缓存;
⑨ 返回数据对象。

阐述Session加载实体对象的过程相关推荐

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

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

  2. (9) hibernate加载持久化对象的两种方式——get、load

    一.get与load对比 在hibernate中get和load方法是根据id取得持久化对象的两种方法,但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更 ...

  3. ansj词典加载及简洁分词过程

    ansj词典加载及简要分词过程 粗略看了点ansj源代码,记录备忘.   词典等配置文件加载类 (以调用 NlpAnalysis 分词类为例): 1,   MyStaticValue 初始化 NlpA ...

  4. store update、insert或delete语句影响了意外的行数(0)。自加载实体后,实体可能已被修改或删除

    报错详情是: store update.insert或delete语句影响了意外的行数(0).自加载实体后,实体可能已被修改或删除.请参见http://go.microsoft.com/fwlink/ ...

  5. babylonjs 分部加载模型_使用 Babylon.js 在 HTML 页面加载 3D 对象

    五一 Windwos Blogs 推了一篇博客, Babylon.js v3.2 发布了.因为一直有想要在自己博客上加载 3D 对象的冲动,这两天正好看到了,就动手研究研究.本人之前也并没有接触过 W ...

  6. ELF文件的加载和动态链接过程

    本文的目的:大家对于Hello World程序应该非常熟悉,随便使用哪一种语言,即使还不熟悉的语言,写出一个Hello World程序应该毫不费力,但是如果让大家详细的说明这个程序加载和链接的过程,以 ...

  7. Java 反射将配置文件数据加载到对象属性中

    Java 反射将配置文件数据加载到对象属性中 Java 反射 可以根据类名找到相应的类,也可以将配置文件中的值加载到对应属性中. 需要用到的包:spring-core-3.1.2.Release.ja ...

  8. EF中加载实体的方式

    EF中的查询执行时机: 1. foreach进行枚举 2. ToArray.ToList.ToDictionary 3. Linq的一些操作,如First.Any 4. DbSet上的Load操作.D ...

  9. JavaWeb --MYSql(MySql基础,MySql高级,JDBC,从类路径下加载输入流对象)

    SQL分类 DDL(Data Definition Language)数据库定义语言,用来定义数据库对象:数据库,表,列等(操作数据库,表等) DML(Data Manipulation Langua ...

最新文章

  1. 零起点学算法10——求圆柱体的表面积
  2. Reconfigure CentOS+freeradius+daloradius again
  3. Add Two Numbers
  4. Bash中的shopt选项
  5. 【原创】网络报文抓取研究
  6. 【DP】【四边形不等式】邮局(P4767)
  7. 实验16 编写包含多个功能子程序的中断例程
  8. 继裁员千人后 蔚来打算卖掉电动方程式车队
  9. 12GB内存版华为P30、P30 Pro工信部入网:售价或将突破7000元
  10. 小美赛:模拟机舱病毒传播
  11. 每个开发人员应该拥有的K8S工具
  12. 大二英语单词(粗略)
  13. elementui表格序号自增
  14. 北京师范大学网络教育计算机考试题,2020年北京师范大学网络教育入学考试高起专语文模拟题及答案(机考古文阅读)...
  15. ThinkPad E420/E520 Win10 开机慢的问题
  16. dell设置从ssd启动_戴尔dell笔记本bios怎么设置第一启动项为硬盘
  17. linux内核带rt,Ubuntu18.04安装PREEMPT_RT实时内核
  18. Java通过正则匹配字符串中“${key}”的key
  19. win10系统护眼色,word2016页面显示仍是白色
  20. 新视野大学英语读写教程(第二版 第三册)读写教程答案(4-9)单元

热门文章

  1. JAVA数据结构 线性表的链式存储及其实现
  2. Windows又发现安全漏洞 能够控制网络用户
  3. python小爬虫之天气查询
  4. 如何将mysql卸载干净
  5. 如何在 GitHub 上高效搜索开源项目
  6. 贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal#39;s algorithm)
  7. sharepoint2013用户切换实现方式
  8. 手低眼高 初学者学习Hibernate的方法
  9. 《LeetCode力扣练习》第617题 合并二叉树 Java
  10. 《LeetCode力扣练习》第6题 C语言版 (做出来就行,别问我效率。。。。)