读书人

Load与get差异

发布时间: 2012-08-22 09:50:35 作者: rapoo

Load与get区别


load方法抛异常是指 在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。

?

get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。

?

总之对于get和load的根本区别,一句话,hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
?

?

读书人网 >软件架构设计

热点推荐