Hibernate中get方法与load方法的区别在哪? Hibernate中get方法与load方法的区别在哪?望个位高手指点下,小弟感激不尽...... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重点是在延迟加载 load 是实现延迟加载的一种方式 当他查询到记录的时候首先返回的是这个类的代理类的对象 当你调用代理类的对象的方法的时候才会开始加载大概是这个意思吧 LZ可以稍微搜索下 介绍这方面的知识很多的http://sunfx870923.javaeye.com/blog/403667 get不支持懒加载 load支持 还有就是 当用get查询数据库不存在的记录时返回null 而load就报异常了 load 加载对象如果不存在就报错。get 加载的对象如果不存在就返回null 又来了,百度谷歌的事情全让csdn做了。 get不支持懒加载 ,load支持get查询数据库不存在的记录时返回null ,load就报异常了 lazy加载 和没有对象时 是否报错... get是一般的用法;load是延迟加载。举个例子:class a{ int a; //假设这个是主键 String b;}a instance = sess.load(a.class, 1);//你通过load得到A这个类的时候, 是个代理类, 空壳而已, 没有b这个String的;System.out.println(instance.b); //这个时候才有b, 这个时候instance是实体类 hibernate中get方法和load方法的根本区别在于:如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。 hibernate中get方法和load方法的区别 http://www.phome.asia/forum/thread/16698.html LOAD得到的是一个代理对象,而get不是,还有load支持延迟加载,而get不支持。 load延迟加载,真正使用的时候才会发sql语句,get立即加载~~load找不到对象会返回null,get找不到会报异常~~就这个区别~~ load会报异常?不会吧~~~搞错了吧~~我记得是get会报异常,我试试…… hibernate中set映射出现的一些问题,谢谢!标题长长长长~ Srping事务管理报错 struts2中的小问题 xloadtree只能显示第一层(组织结构)的问题 [求助] 用了声明式事务,service层不能注入DAO,没用事务前却能运行。。 怎么样开始学习J2EE? 有你会更精彩 --- qq群(13374628) 本科生做界面,有前途吗??? applet程序与ASP的结合!!!!!!!! java中的路径连接字符“/”&“\”???? tomcat6配置虚拟目录出现问题 找不到spring配置文件
大概是这个意思吧 LZ可以稍微搜索下 介绍这方面的知识很多的
http://sunfx870923.javaeye.com/blog/403667
get 加载的对象如果不存在就返回null
get查询数据库不存在的记录时返回null ,load就报异常了
load是延迟加载。
举个例子:
class a{
int a; //假设这个是主键
String b;
}a instance = sess.load(a.class, 1);//你通过load得到A这个类的时候, 是个代理类, 空壳而已, 没有b这个String的;System.out.println(instance.b); //这个时候才有b, 这个时候instance是实体类
对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
hibernate中get方法和load方法的区别
http://www.phome.asia/forum/thread/16698.html
load找不到对象会返回null,get找不到会报异常~~就这个区别~~