Hibernate中取对象的两个方法load()和get()有什么区别

 我来答
菡萏香销prince
2013-05-16 · 超过19用户采纳过TA的回答
知道答主
回答量:48
采纳率:100%
帮助的人:28.1万
展开全部
其实都是查询,只不过load()有延时加载
get方法不使用延迟加载机制,load采用延迟加载机制
如果没有满足条件的记录,get方法返回null,load则抛出异常
load方法返回的对象是一个动态代理类(Hibernate框架动态生成的,是实体类的子类型)。
get方法返回的对象类型就是原实体类型

延迟实现原理:
---在使用具有延迟加载机制API时,返回的是一个动态代理类型
首先动态在内存中创建的一个类
然后动态编译这个类,载入类加载器
---返回的动态代理类是原实体类型的一个子类。
---动态代理类重写了实体类的getter,检测是否加载数据库的数据,未加载进行数据库查询,然后返回该属性值。
年俊梅e7
2013-05-16 · TA获得超过227个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:287万
展开全部
load方法返回对象在被调用时 hibernate才会发出SQL语句去查询对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式