摘要: TSS上面Ganesh同志的文章內(nèi)容是非常有益的,討論了session的這兩個api的區(qū)別。get是每次都會從數(shù)據(jù)庫取數(shù)據(jù)以保證數(shù)據(jù)的可靠。而load則會返回一個proxy,相當(dāng)于一個存根,訪問的時候從當(dāng)前session或者h(yuǎn)ibernate二級緩存中查找,如果找不到則從數(shù)據(jù)庫中Lazy Load一下。從Hibernate的復(fù)雜性上來說,這個概念應(yīng)該算比較容易理解的,而且這種存在也是非常合理的。順便里面還補充了一下JPA里面也有類似的getReference方法,行為類似load。看完文章你會開始注意這個細(xì)節(jié)。
可是,這個細(xì)節(jié)的下面卻引起了n多人的討論,討論的核心就是Hibernate是不是有太多細(xì)節(jié)了?
很多人說這樣不是OO的,很多人說Hibernate的細(xì)節(jié)造成它復(fù)雜,有人說Hibernate影響了他們的工作效率,等等,反正反對者站出來很多。我想這是可喜的。
說明在Java的Killer-APP組合Spring+Hibernate后面還是有很多持懷疑態(tài)度的人的,我們隨時都需要提問題的大腦!
所以,我們也思考一下吧:
閱讀全文