当前位置: 首页 > news >正文

关于Hibernate中get和load的区别

关于Hibernate中get()和load(),都是通过id取得记录信息

SysUserEntity user=(SysUserEntity)session.load(SysUserEntity.class,id);

SysUserEntity user=(SysUserEntity)session.get(SysUserEntity.class,id);

但是这俩是有区别的

 

load()方式查询不到数据,就会抛出org.hibernate.ObjectNotFoundException异常的异常

get()方式查询不到数据,就会返回null

 

load()方式比get()方式复杂,load()方式先在缓存中查询,如果该数据在缓存中,则直接返回。

如果没有则继续在数据库中查询,查到记录返回,查不到抛出异常。

get()方式直接从数据库中查询,如果该数据在缓存中,则直接返回。没有则返回null

 

根本上:

对于load()时,会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。

id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。

对于get()时,hibernate会确认一下该id对应的数据是否存在,

首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。

 

为什么load()的会抛异常: 使用该方法时候,认为数据库是存在该数据的,用代理来延迟加载,在使用中出现错误,就会抛异常

对于get(),查询的是真实数据,查询不到就会返回null

转载于:https://www.cnblogs.com/morisan/p/7247701.html

相关文章:

  • bootstrap-table 怎么自定义搜索按钮实现点击按钮进行查询
  • 新产品为了效果,做的比較炫,用了非常多的图片和JS,所曾经端的性能是非常大的问题,分篇记录前端性能优化的一些小经验。...
  • 百度地图坐标拾取
  • @RequestMapping-占位符映射
  • 夺命雷公狗TP3.2.3商城13-----无限极分类添加
  • 【征文】Hadoop十周年特别策划——我与Hadoop不得不说的故事
  • hdu 1671 Phone List
  • HDU 4607 树的直径
  • 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
  • Oracle日志查看
  • Oracle查询最近执行过的SQL语句
  • 统一设备模型(1)——bus、subsys_interface、class、class_interface分析
  • IIS7.5 错误代码0x8007007e HTTP 错误 500.19 - Internal Server Error
  • 竖排主菜单鼠标滑动角度判断显示子分类
  • [NOIP2015] 运输计划
  • 【Leetcode】101. 对称二叉树
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【mysql】环境安装、服务启动、密码设置
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 10个确保微服务与容器安全的最佳实践
  • HTML-表单
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Mac转Windows的拯救指南
  • node 版本过低
  • overflow: hidden IE7无效
  • PAT A1017 优先队列
  • underscore源码剖析之整体架构
  • 批量截取pdf文件
  • 前端面试之闭包
  • 前端自动化解决方案
  • 全栈开发——Linux
  • 试着探索高并发下的系统架构面貌
  • 微信小程序开发问题汇总
  • 为视图添加丝滑的水波纹
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)WCF的Binding模型
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (四)Controller接口控制器详解(三)
  • (转)linux下的时间函数使用
  • (转)Sql Server 保留几位小数的两种做法
  • *上位机的定义
  • .NET BackgroundWorker
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core 中的路径问题
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .pyc文件是什么?