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. 微软将发布5月安全漏洞补丁 修补PPT
  2. iOS_根据文字字数动态确定Label宽高
  3. delphi XE 下打开内存泄漏调试功能
  4. 双绞线传输距离多长_网线数据传输最大距离是多少米
  5. 【Leetcode】二分法左侧边界右侧边界模板
  6. SAP ABAP Netweaver容器化, 不可能完成的任务吗?
  7. c语言能让制表符空9个字符码,C语言编程规范 – 嗨!大佟!
  8. linux+广播程序,Linux系统下广播程序制作介绍(上) (3)
  9. 2023.TortoiseGit 工具
  10. python制作表格的语句_python根据Excel自动生成创建表sql语句
  11. 命令行中,变量 date time 格式化设定
  12. oracle dba (适用,OracleDBA笔试题
  13. 是的,我们真的在遭遇有史以来最大的DDoS攻击,并且还在加剧
  14. jrtplib linux编译,linux下编译jrtplib、jthreadlib
  15. 基于Multisim的555时基电路
  16. Intouch | 报警延时设定
  17. java 获取微信公众号文章 使用搜狗微信搜索
  18. 一次简单的PC游戏汉化
  19. python销毁线程_python线程销毁
  20. AXURE实现QQ音乐APP部分原型功能

热门文章

  1. MS SQL入门基础:移动数据库
  2. 华为路由器qos car+nat+dhcp+vlan配置心得
  3. MATLAB遍历子文件夹及其下文件
  4. Spark的RDD 文件读取与保存
  5. IKAnalyzer使用停用词词典进行分词
  6. VS2010运行类向导提示“未实现该方法或操作”
  7. Erlang Start![3]
  8. SQL语句大全,所有的SQL都在这里
  9. 【洛谷 P1896】[SCOI2005]互不侵犯(状压dp)
  10. LeetCode-Reverse Integer