hibernate中get方法和load方法的区别
2013-02-21 17:14
288 查看
load:
使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,将抛出ObjectNotFoundException异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
get:
get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
详细区别请参考:http://developer.51cto.com/art/200906/132357.htm
/article/5424151.html
使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,将抛出ObjectNotFoundException异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
get:
get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
详细区别请参考:http://developer.51cto.com/art/200906/132357.htm
/article/5424151.html
相关文章推荐
- Hibernate中Session之get和load方法的真正区别
- hibernate中get方法和load方法的区别
- Hibernate中的get和load方法的区别
- Hibernate中get和load方法的区别
- hibernate的load和get方法的区别
- hibernate load与get方法的区别
- Hibernate中get和load方法的区别
- Hibernate中get方法和load方法的区别
- Hibernate中get()与load()的区别,以及关于ThreadLocal的使用方法
- Hibernate的load()、get()、list()、iterator()方法的区别
- Hibernate中get()和load()方法的区别
- Hibernate中get和load方法的区别
- Hibernate中get和load方法的区别
- Hibernate加载数据时get和load方法的区别
- Hibernate中get和load方法的区别
- hibernate中get方法和load方法的根本区别
- hibernate中load和get方法的区别
- 对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)
- hibernate里load方法和get方法的区别
- Hibernate中get和load方法的区别以及close()、clear()、evict()