Tin's Blog

          You are coming a long way, baby~Thinking, feeling, memory...

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評論 :: 0 Trackbacks

          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后面還是有很多持懷疑態度的人的,我們隨時都需要提問題的大腦!
          所以,我們也思考一下吧:
          1、你一定要盡量的不斷地熟悉你所使用的技術,可以是Hibernate也可以是JDBC,時刻保持對相關知識的饑渴。這樣減少因為你的無知造成的失誤。
          2、思考別人的批評,或者說ORM不好,或者說這種那種ORM不好,你都要聽著,然后思考,然后堅持你思考的結果,直到下一次思考。這個過程最好保持一定的技術偏執,因為沒有性格的程序員不是好程序員。
          3、放眼各種技術,了解相似技術,這樣你不會在城頭更換大王旗的時候失業:D。現在我們可以回頭看看JDBC Dataset和JPA,向上向下都要看齊嘛。了解了相似技術更有助于你的思考。
          4、知道你在討論什么,知道背景。你需要知道Hibernate主要在Java or JavaEE中使用,當然有Hibernate.net,但是它不怎么火。還有,Hibernate的基礎還是SQL和DBMS,你需要仔細了解這兩種東西。
          5、悟道。

          Ganesh的原文:
          Hibernate - Difference between session's get() and load()
          http://gmarwaha.blogspot.com/2007/01/hibernate-difference-between-sessions.html
          TSS上的討論:
          Difference between Hibernate's get() and load()?
          http://www.theserverside.com/news/thread.tss?thread_id=43887

          我以前翻譯的Hibernate的session的javadoc,當時好像從字面上沒有什么大的區別,配合這個帖子,要重新想一想:D
          http://www.aygfsteel.com/iamtin/archive/2006/03/06/33910.html

          BTW:因為做手術在家休養,所以才有時間發發牢騷:D

          posted on 2007-01-26 14:27 Tin 閱讀(5163) 評論(2)  編輯  收藏 所屬分類: Hibernate相關

          評論

          # re: TSS上面關于hibernate的get和load方法區別的討論 2007-01-28 00:05 差沙
          哦,怎么手術了,早日康復呀。  回復  更多評論
            

          # re: TSS上面關于hibernate的get和load方法區別的討論[未登錄] 2007-01-31 13:54 Tin
          突發闌尾炎就去切了……然后就住院了:D
          還好,今天已經上班了。  回復  更多評論
            

          主站蜘蛛池模板: 阳江市| 高要市| 阿拉善盟| 博客| 古浪县| 肥西县| 托里县| 龙口市| 若尔盖县| 威宁| 商丘市| 宜川县| 铜山县| 桃源县| 合作市| 东港市| 寿宁县| 铅山县| 济南市| 伊金霍洛旗| 六枝特区| 攀枝花市| 法库县| 尼勒克县| 罗平县| 牡丹江市| 越西县| 安化县| 五原县| 北川| 大邑县| 东乌珠穆沁旗| 宝丰县| 山丹县| 长泰县| 阳朔县| 阜城县| 孟津县| 弥勒县| 洛川县| 屏东县|