Loading...

          java .net

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

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

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

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

          今天好像是立冬,冬天到了,抓緊時(shí)間充充電,明天接著學(xué)...

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

          評論

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

          有沒有學(xué)會啊。亂寫。  回復(fù)  更多評論   

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

          別光批評不指正啊  回復(fù)  更多評論   

          公告

          希望有一天

          我能用鼠標(biāo)雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

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

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網(wǎng)絡(luò)

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晴隆县| 兴隆县| 山阳县| 海晏县| 含山县| 保亭| 郴州市| 司法| 缙云县| 乡城县| 时尚| 上虞市| 麻江县| 丹寨县| 正宁县| 通化市| 汶上县| 南川市| 遵义县| 江孜县| 白银市| 长岭县| 基隆市| 健康| 合作市| 久治县| 长顺县| 桑植县| 故城县| 滦平县| 高台县| 汶川县| 东光县| 丹巴县| 巴林右旗| 横山县| 喀喇沁旗| 绥宁县| 和平区| 枝江市| 柳江县|