Hibernate-檢索策略

          Hibernate主要檢索策略主要有即時(shí)檢索, 延遲檢索, 批量檢索(batch-size), 迫切左外連接檢索(outer-join)。 即時(shí)檢索, 延遲檢索, 批量檢索分為類級(jí)別和級(jí)聯(lián)級(jí)別。 只有LOAD方法可以使用類級(jí)別的延遲檢索,get() 和 find()將忽略類級(jí)別的延遲檢索, 總使用即時(shí)檢索策略。 find()還同時(shí)忽略級(jí)聯(lián)級(jí)別的迫切左外連接檢索(一對(duì)多, 多對(duì)多情況下)。 LOAD()在類級(jí)別的延遲將建立一個(gè)代理對(duì)象。 set將一直設(shè)立一個(gè)代理對(duì)象(實(shí)現(xiàn)SET)然后用代理對(duì)象指向?qū)嶋H應(yīng)用。 HIBERNATE.PROPERTIES中的 maz-fetch-depth可以指定迫切左外連接的層次結(jié)構(gòu)。 如果不實(shí)用迫切左外連接, 則對(duì)每條級(jí)聯(lián)的檢索數(shù)據(jù)會(huì)產(chǎn)生一天SELECT語(yǔ)句, 這樣SELECT語(yǔ)句數(shù)目太多會(huì)影響性能, 但是外連接的過(guò)多, 會(huì)涉及到表與表之間的關(guān)聯(lián)等等, 需要 在SELECT數(shù)目與外連接上做一個(gè)權(quán)衡。 如果一個(gè)映射文件中有很多個(gè)SET, 只有一個(gè)SET 的OUTER-JOIN可以為TRUE(HIBERNATE實(shí)現(xiàn), 為了提高性能. 一般在類級(jí)別采用立即檢索, 在一對(duì)多, 或多對(duì)多情況下采用延遲檢索, 在一對(duì)一, 多對(duì)一下采用迫切左外連接檢索。 可以在代碼中指定檢索策略。 get()如果級(jí)聯(lián)的對(duì)象為空則返回NULL值。 為什么不才用SQL語(yǔ)言進(jìn)行檢索? 需要封裝成對(duì)象, 檢查內(nèi)存中有無(wú)重復(fù)的對(duì)象。 find()方法只能進(jìn)行靜態(tài)查詢, 將被QUERY接口所取代!

          posted on 2006-08-28 08:40 Sheldon Sun 閱讀(357) 評(píng)論(1)  編輯  收藏

          評(píng)論

          # re: Hibernate-檢索策略 2008-05-21 16:22 受傷

          受傷  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 民权县| 从江县| 招远市| 江西省| 桦川县| 泽库县| 丹棱县| 东丽区| 东丰县| 桦南县| 乳山市| 库车县| 宣化县| 永嘉县| 营口市| 墨江| 前郭尔| 武胜县| 尼木县| 枝江市| 深泽县| 昭觉县| 会昌县| 镇坪县| 瑞金市| 昭通市| 南昌县| 贞丰县| 伊春市| 玉树县| 万载县| 华蓥市| 沾益县| 青河县| 孟津县| 洛阳市| 襄樊市| 长泰县| 进贤县| 密山市| 普陀区|