Hibernate中load和get的区别 在Hibernate中查询一个对象的方法有两种load和get。两者在延迟加载方面有所不同。1、load查询方式通过load方法查询对象的时候Hibernate会使用延迟加载的方式来查询指定的对象也就是说通过load方法获取一个对象的时候并没有真的发出SQL语句到数据库取查询数据只是生成了一个空的对象返回回来。当程序真的使用到这个对象的时候才会发出SQL语句到数据库里去查询数据。例如如下代码User user (User) session.load(User.class, 1); // 这行代码执行完并没有发出SQL语句 System.out.println(user.getName()); // 发送SQL语句到数据库查询数据实际上上述第一行代码只是返回了一个代理对象。只有真正使用到了这个对象的时候才会到数据库查询其相应的数据字段就像上述第二行代码那样。2、get查询方式使用get方法查询对象就不会使用延迟加载的机制了它会直接发送SQL到数据库然后把查询到的数据字段注入到对象中去然后返回出来。例如如下代码User user (User) session.get(User.class, 1); // 直接发送SQL到数据库查询数据字段3、注意事项通过get获取对象的时候当我们试着用一个不存在的ID去查询数据时会抛出NullPointerException。而使用load方式获取对象时如果数据不存在则会抛出ObjectNotFoundException。我们知道如果使用的是load方式查询数据返回的是一个代理对象只有在使用这个代理对象的时候才会发送SQL去数据库加载数据。所以如果在你使用这个代理对象之前关闭了session则会抛出LazyInitializationException。青蛙客服系统https://download.csdn.net/download/look4liming/93326820

相关新闻

最新新闻

论文AI率90%降到个位数:亲测有效攻略

论文AI率90%降到个位数:亲测有效攻略

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

2026/8/28 20:30:35
基于YOLOv8与PyQt5的西红柿成熟度检测系统实战详解

基于YOLOv8与PyQt5的西红柿成熟度检测系统实战详解

简介:目标检测技术正在重塑农业自动化与生鲜供应链的作业方式,其中果实成熟度识别是分拣环节的关键难题。区别于图像分类和实例分割,基于YOLOv8的检测方案在精度、速度与标注成本之间取得了最佳平衡——它不仅能精准定位果实位置,…

2026/8/28 20:30:35
陌生开源项目快速评估与上手:以MiroFish为例的系统化方法

陌生开源项目快速评估与上手:以MiroFish为例的系统化方法

如果你在 GitHub 上看到一个叫 666ghj / MiroFish 的仓库,第一反应大概率是打开 README,从上往下扫一遍,觉得“看起来不错”,然后直接 git clone ,执行构建命令,接着被一堆依赖问题、配置文件缺失、运行…

2026/8/28 20:30:35
信管毕设简单的开题推荐

信管毕设简单的开题推荐

1 引言 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应用需求&#xf…

2026/8/28 20:30:35
TOPSIS综合评价方法详解:从原理到Python代码实现

TOPSIS综合评价方法详解:从原理到Python代码实现

简介:在工程实践和商业决策中,面对多方案、多指标的复杂评价问题,如何从数据中提炼出客观的排序依据?综合评价方法给出了结构化解决思路,其中优劣解距离法(TOPSIS)因其计算直观、对数据分布无苛…

2026/8/28 20:30:35
ASE子函数:模块化Shader开发,告别面条代码,提升Unity特效制作效率

ASE子函数:模块化Shader开发,告别面条代码,提升Unity特效制作效率

1. 从“面条代码”到模块化:为什么我们需要ASE子函数在Unity的Shader开发中,尤其是使用Amplify Shader Editor(ASE)这类可视化工具时,很多朋友,包括我自己刚上手那会儿,都容易陷入一个误区&…

2026/8/28 20:25:34