Tin's Blog

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks

          TSS上面Ganesh同志的文章內(nèi)容是非常有益的,討論了session的這兩個(gè)api的區(qū)別。get是每次都會(huì)從數(shù)據(jù)庫(kù)取數(shù)據(jù)以保證數(shù)據(jù)的可靠。而load則會(huì)返回一個(gè)proxy,相當(dāng)于一個(gè)存根,訪問(wèn)的時(shí)候從當(dāng)前session或者h(yuǎn)ibernate二級(jí)緩存中查找,如果找不到則從數(shù)據(jù)庫(kù)中Lazy Load一下。從Hibernate的復(fù)雜性上來(lái)說(shuō),這個(gè)概念應(yīng)該算比較容易理解的,而且這種存在也是非常合理的。順便里面還補(bǔ)充了一下JPA里面也有類似的getReference方法,行為類似load。看完文章你會(huì)開始注意這個(gè)細(xì)節(jié)。
          可是,這個(gè)細(xì)節(jié)的下面卻引起了n多人的討論,討論的核心就是Hibernate是不是有太多細(xì)節(jié)了?
          很多人說(shuō)這樣不是OO的,很多人說(shuō)Hibernate的細(xì)節(jié)造成它復(fù)雜,有人說(shuō)Hibernate影響了他們的工作效率,等等,反正反對(duì)者站出來(lái)很多。我想這是可喜的。
          說(shuō)明在Java的Killer-APP組合Spring+Hibernate后面還是有很多持懷疑態(tài)度的人的,我們隨時(shí)都需要提問(wèn)題的大腦!
          所以,我們也思考一下吧:
          1、你一定要盡量的不斷地熟悉你所使用的技術(shù),可以是Hibernate也可以是JDBC,時(shí)刻保持對(duì)相關(guān)知識(shí)的饑渴。這樣減少因?yàn)槟愕臒o(wú)知造成的失誤。
          2、思考別人的批評(píng),或者說(shuō)ORM不好,或者說(shuō)這種那種ORM不好,你都要聽(tīng)著,然后思考,然后堅(jiān)持你思考的結(jié)果,直到下一次思考。這個(gè)過(guò)程最好保持一定的技術(shù)偏執(zhí),因?yàn)闆](méi)有性格的程序員不是好程序員。
          3、放眼各種技術(shù),了解相似技術(shù),這樣你不會(huì)在城頭更換大王旗的時(shí)候失業(yè):D。現(xiàn)在我們可以回頭看看JDBC Dataset和JPA,向上向下都要看齊嘛。了解了相似技術(shù)更有助于你的思考。
          4、知道你在討論什么,知道背景。你需要知道Hibernate主要在Java or JavaEE中使用,當(dāng)然有Hibernate.net,但是它不怎么火。還有,Hibernate的基礎(chǔ)還是SQL和DBMS,你需要仔細(xì)了解這兩種東西。
          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āng)時(shí)好像從字面上沒(méi)有什么大的區(qū)別,配合這個(gè)帖子,要重新想一想:D
          http://www.aygfsteel.com/iamtin/archive/2006/03/06/33910.html

          BTW:因?yàn)樽鍪中g(shù)在家休養(yǎng),所以才有時(shí)間發(fā)發(fā)牢騷:D

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

          評(píng)論

          # re: TSS上面關(guān)于hibernate的get和load方法區(qū)別的討論 2007-01-28 00:05 差沙
          哦,怎么手術(shù)了,早日康復(fù)呀。  回復(fù)  更多評(píng)論
            

          # re: TSS上面關(guān)于hibernate的get和load方法區(qū)別的討論[未登錄](méi) 2007-01-31 13:54 Tin
          突發(fā)闌尾炎就去切了……然后就住院了:D
          還好,今天已經(jīng)上班了。  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 柳林县| 惠安县| 合水县| 图们市| 韩城市| 泸定县| 开封县| 顺平县| 嘉禾县| 保山市| 和静县| 林西县| 苏尼特左旗| 新竹市| 眉山市| 南部县| 贺州市| 虞城县| 崇阳县| 芜湖市| 辽宁省| 太保市| 江川县| 泗洪县| 威宁| 石棉县| 鄂州市| 杭锦后旗| 秦皇岛市| 象州县| 柳河县| 洪雅县| 扎鲁特旗| 泗水县| 南郑县| 烟台市| 饶平县| 从江县| 墨玉县| 永新县| 新郑市|