Hibernate : load 比 get 效率高?

    关于Hibernate的load和get方法的区别,网上一抓一大片。不过,也许是版本的不一样,感受网上的文章有其谬误。何况,说二者区别的文章一大片,但几近没有文章谈及什么时候使用这两方法合适。
程序员

    网上流传较广的说法之一是:load比get效率高。理由是:load比较聪明,会先从一、2级缓存中找数据,找不到再从数据库中查询;而get则是个笨蛋,无论三七二十一,直接查数据库。
数据库

    也许老版本是这样,实际上,我用Hibernate3.6测试发现,get也会从缓存中找数据。因此,在查询方面,我认为二者间的效率并没有甚差别——想一想也该明白,若是load真比get全方位的优胜,那get还有存在的意义么?早就被Hibernate开发组的人淘汰了。
缓存

    那么,load和get到底有什么区别——或者说,他们各自应用在什么地方?
测试

    我以为,他们俩之间的关系就像是单例模式中的懒汉式和饿汉式——若是要取的数据很少,而且肯定必定会用到,那么直接拿过来就好;反过来,若是要查的数据不必定被用到,并且数据量较大,耗费资源较多,那咱们就应该使用load延迟加载,即在真正要用的时候再来查询数据。
资源

    

    网上的文章大多都列了好多load和get的不一样之处的条目,这里就再也不赘述了——优秀的程序员从不干重复低价值的劳动,嘿嘿。
开发

相关文章
相关标签/搜索