load / get 区别

结合网上整理的关于load/get区别
1. 查找不存在记录时,get返回null, load抛ObjectNotFoundException
2. 当调用session.get()时,hibernate 会先去[color=red]缓存(包括一级,二级)[/color]找,有则立即返回, 没有则立刻发sql,到db中去查。
当调用obj = session.Load(A.class, id)时,hibernate 返回代理对象,不会马上发sql去DB查,只有真正用到该对象的数据时(如obj.getName()), hibernate 先去缓存查找(一级,二级),如有,则返回,如没有则发sql到db中去查,如没有该id,则抛异常

使用场景:
1。如果加载对象目的为了访问其属性,用get
2。如加载对象为了删除或者建立与其它对象的关联关系,用load
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值