Hibernate的get和load的区别

来源:互联网 发布:戴尔笔记本连不上网络 编辑:程序博客网 时间:2024/05/22 03:49
Hibernate的get和load的区别
load()方法是假定你所读取的对象是肯定存在的...而get则是尝试访问..如果没有则返回null.而load就会抛出Exception cant load ...
个人认为这两个方法唯一的区别就是为了实现不同的业务需要...从src上看性能是一样的

get是直接查询数据库,如果查不到就返回null,并不存在如楼上说的隐患吧?
Load会首先从内存中装载,如果以前没有装载或查询出来,才开 始查询数据库,某些情况下效率会高一点。但如果类是通过代理映射的,load()方法会返回一个对象,这是一个未初始化的代理,并且直到你调用该对象的某 方法时才会去访问数据库,如果数据库中并不存在这条数据,而你去使用它的方法必然会抛出异常,所以你得在使用到这个对象的各处捕获异常,使用起来相对麻 烦。但这是使用了代理的情况,如果没有使用代理,只是简单的load,那查不到数据就会抛出异常了。


本文引用地址:http://cnpoint.com/framwwork/2006/1128/content_4680.htm

Hibernate的get和load的区别
 
原创粉丝点击