Loading...

          java .net

          重溫Hibernate基礎--get/load的區(qū)別

          下了個Hibernate視頻教程聽,雖然一年多以前跟老師學過Hibernate,但現(xiàn)在聽聽還是有很多收獲的,發(fā)現(xiàn)自己的知識知道的都是些皮毛,用了很久的東西,知道怎么操作怎么用,但要說說它的所以然,搖搖頭,呵呵

          根據主鍵Id得到一個持久對象,Hibernate中有兩個方法,一個get,一個load,他們兩個參數(shù)相同,都返回一個Object

          它們的區(qū)別:
          執(zhí)行get方法即時生成查詢sql去查詢數(shù)據庫得到相應的pojo,如果數(shù)據庫中沒有相應記錄,則返回null
          執(zhí)行l(wèi)oad方法不會即時產生sql語句,而是在用到返回的對象時采取查詢數(shù)據庫,也就是load方法有默認的延遲加載,在執(zhí)行l(wèi)oad方法后返回的不是一個pojo對象,是pojo對象的一個代理(據說Hibernate是用代理的方式實現(xiàn)延遲加載的,這塊還迷糊),如果數(shù)據庫中沒有相應記錄,load方法會拋出異常ObjectNotFoundException
          看了一下我們用MyEclipse hibernate工具通過數(shù)據庫生成的DAO類,它的findById方法是用的session.get()方法,這是即時獲得pojo對象,如果是load方法,在執(zhí)行完load后如果關閉了session,那在接下來用到這個pojo對象時恐怕會報session已關閉的錯誤。
          還有就是這兩個方法的第二個參數(shù)id,它必須是實現(xiàn)了java.io.Serializable接口,也就是可序列化的。

          今天好像是立冬,冬天到了,抓緊時間充充電,明天接著學...

          posted on 2008-11-07 10:15 閱讀(1987) 評論(2)  編輯  收藏 所屬分類: 學習java

          評論

          # re: 重溫Hibernate基礎--get/load的區(qū)別 2008-12-25 16:21 你還真是豬

          有沒有學會啊。亂寫。  回復  更多評論   

          # re: 重溫Hibernate基礎--get/load的區(qū)別 2008-12-25 17:44

          別光批評不指正啊  回復  更多評論   

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 剑河县| 旬阳县| 阿鲁科尔沁旗| 乐山市| 交城县| 得荣县| 红安县| 石林| 四子王旗| 高邑县| 察哈| 青海省| 华宁县| 嵩明县| 祁东县| 宁陕县| 固镇县| 安吉县| 长葛市| 邵阳市| 佛冈县| 西贡区| 个旧市| 郁南县| 黄骅市| 大姚县| 两当县| 镇平县| 武清区| 鄂托克旗| 元阳县| 永福县| 贵阳市| 南投市| 凉山| 唐山市| 察雅县| 佛坪县| 贵阳市| 图片| 新巴尔虎右旗|