社区
Java EE
帖子详情
hibernate 中的 get 和 load 的区别
jspxnet
2004-12-22 03:38:29
我测试了一下hibernate 中 get 和 load 的区别,有的地方不太明白。
设 cat 表中没有 ID为1111的数据.
session.get(cat.class, "1111"); //得到null对象
session.load(cat.class,"1111"); //得到的不是空对象,如果你一处理,就包错
get 和 load 在处理上有什么不同,缓存管理上有什么不同.
...全文
160
10
打赏
收藏
hibernate 中的 get 和 load 的区别
我测试了一下hibernate 中 get 和 load 的区别,有的地方不太明白。 设 cat 表中没有 ID为1111的数据. session.get(cat.class, "1111"); //得到null对象 session.load(cat.class,"1111"); //得到的不是空对象,如果你一处理,就包错 get 和 load 在处理上有什么不同,缓存管理上有什么不同.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
catblue
2004-12-27
打赏
举报
回复
同意
kaymo
2004-12-23
打赏
举报
回复
没考虑这个问题
一般就拿着load上
赫赫
gz
jspxnet
2004-12-23
打赏
举报
回复
一般都用 load() ,load 比 get 好在那,就是使用的时候,才查询???
programeyonger
2004-12-23
打赏
举报
回复
好象一般都用的是load()啊!
IceCraft
2004-12-23
打赏
举报
回复
两者各有利弊,根据需要取舍吧。
get是直接查询数据库,如果查不到就返回null,并不存在如楼上说的隐患吧?
Load会首先从内存中装载,如果以前没有装载或查询出来,才开始查询数据库,某些情况下效率会高一点。但如果类是通过代理映射的,load()方法会返回一个对象,这是一个未初始化的代理,并且直到你调用该对象的某方法时才会去访问数据库,如果数据库中并不存在这条数据,而你去使用它的方法必然会抛出异常,所以你得在使用到这个对象的各处捕获异常,使用起来相对麻烦。但这是使用了代理的情况,如果没有使用代理,只是简单的load,那查不到数据就会抛出异常了。
bluemeteor
2004-12-23
打赏
举报
回复
btw:我这的2.1.7...不知道在3里面load和get在CACHE方面是否存在不同
bluemeteor
2004-12-23
打赏
举报
回复
load()方法是假定你所读取的对象是肯定存在的...而get则是尝试访问..如果没有则返回null.而load就会抛出Exception cant load ...
个人认为这两个方法唯一的区别就是为了实现不同的业务需要...从src上看性能是一样的
老土豆T
2004-12-23
打赏
举报
回复
将起来很麻烦,但实际上load()好..
load是必须要把对象找到,,如果找不到就会报错.
但get不一样,get找不就就算了..我是去get嘛,,所以它找不到返回为null 不会报错.(但隐患很大.)
执行效率上是一样的...所以一般都用load() 也是有道理的
noscar
2004-12-22
打赏
举报
回复
get(),好象是数据库里不一定有的。而load()一定是数据库里有的....
jspxnet
2004-12-22
打赏
举报
回复
我用的是 hibernate3 beta1
hibernate
中
get和
load
方法的
区别
NULL 博文链接:https://ysj5125094.iteye.com/blog/1897557
hibernate
get
load
区别
get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;反而
load
方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库
Hibernate
的get和
load
方法的
区别
NULL 博文链接:https://811417208-qq-com.iteye.com/blog/506950
hibernate
中
get和
load
的
区别
共5页.pdf
hibernate
中
get和
load
的
区别
共5页.pdf.zip
hibernate
三种 查询 方式
load
与get的
区别
NULL 博文链接:https://cici9898-007.iteye.com/blog/1847710
Java EE
67,549
社区成员
225,863
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章