Hibernate的get和load的区别
2006-05-09 14:22
253 查看
load()方法是假定你所读取的对象是肯定存在的...而get则是尝试访问..如果没有则返回null.而load就会抛出Exception cant load ...
个人认为这两个方法唯一的区别就是为了实现不同的业务需要...从src上看性能是一样的
get是直接查询数据库,如果查不到就返回null,并不存在如楼上说的隐患吧?
Load会首先从内存中装载,如果以前没有装载或查询出来,才开 始查询数据库,某些情况下效率会高一点。但如果类是通过代理映射的,load()方法会返回一个对象,这是一个未初始化的代理,并且直到你调用该对象的某 方法时才会去访问数据库,如果数据库中并不存在这条数据,而你去使用它的方法必然会抛出异常,所以你得在使用到这个对象的各处捕获异常,使用起来相对麻 烦。但这是使用了代理的情况,如果没有使用代理,只是简单的load,那查不到数据就会抛出异常了。
个人认为这两个方法唯一的区别就是为了实现不同的业务需要...从src上看性能是一样的
get是直接查询数据库,如果查不到就返回null,并不存在如楼上说的隐患吧?
Load会首先从内存中装载,如果以前没有装载或查询出来,才开 始查询数据库,某些情况下效率会高一点。但如果类是通过代理映射的,load()方法会返回一个对象,这是一个未初始化的代理,并且直到你调用该对象的某 方法时才会去访问数据库,如果数据库中并不存在这条数据,而你去使用它的方法必然会抛出异常,所以你得在使用到这个对象的各处捕获异常,使用起来相对麻 烦。但这是使用了代理的情况,如果没有使用代理,只是简单的load,那查不到数据就会抛出异常了。
相关文章推荐
- hibernate检索方式——get和load检索方式的区别
- Hibernate中get和load方法的区别以及close()、clear()、evict()
- Hibernate中get()和load()的区别
- Hibernate 第八讲 Hibernate的get和load的区别
- Hibernate session.get()和session.load()方法的区别
- Hibernate中 get和load的区别
- hibernate中get()与load()的区别
- hibernate延迟加载之get和load的区别
- Hibernate中get和load方法的区别
- Hibernate中get和load方法的区别以及close()、clear()、evict()
- Hibernate get和load区别
- hibernate的load与get的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- Hibernate3学习笔记(3)——Hibernate session中get与load函数的区别
- Hibernate get和load区别
- Hibernate 笔记5 load和get方法的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- Hibernate中get()和load()方法的区别
- hibernate 中 get、load 的 区别
- Hibernate中get和load方法的区别