摘要: TSS上面Ganesh同志的文章内容是非常有益的,讨论了session的这两个api的区别。get是每次都会从数据库取数据以保证数据的可靠。而load则会返回一个proxy,相当于一个存根,访问的时候从当前session或者hibernate二级缓存中查找,如果找不到则从数据库中Lazy Load一下。从Hibernate的复杂性上来说,这个概念应该算比较容易理解的,而且这种存在也是非常合理的。顺便里面还补充了一下JPA里面也有类似的getReference方法,行为类似load。看完文章你会开始注意这个细节。
可是,这个细节的下面却引起了n多人的讨论,讨论的核心就是Hibernate是不是有太多细节了?
很多人说这样不是OO的,很多人说Hibernate的细节造成它复杂,有人说Hibernate影响了他们的工作效率,等等,反正反对者站出来很多。我想这是可喜的。
说明在Java的Killer-APP组合Spring+Hibernate后面还是有很多持怀疑态度的人的,我们随时都需要提问题的大脑!
所以,我们也思考一下吧:
阅读全文