<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹翔宇空

    學(xué)習(xí)和生活

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
    近段時(shí)間在讀孫維琴的《精通hibernate》,感覺收獲不少,對(duì)于hibernate檢索策略的第一部分,感覺其實(shí)就是幾張表,如果把幾張表搞清楚了,其他的也就無(wú)所謂了,幸而書中總結(jié)的很好,就摘錄如下:
    注意:此版本主要是基于hibernate2.x版本。

    類級(jí)別和關(guān)聯(lián)級(jí)別可選的檢索策略和默認(rèn)的檢索策略

     

    檢索策略的作用域

    可選的檢索策略

    默認(rèn)的檢索策略

    運(yùn)行時(shí)行為受影響的sesssion的檢索方法

    類級(jí)別

    立即檢索

    延遲檢索

    立即檢索

    僅影響load()方法

    關(guān)聯(lián)級(jí)別

    立即檢索

    延遲檢索

    迫切左外連接檢索

    多對(duì)一和一對(duì)一關(guān)聯(lián)為外連接檢索

    影響load(),get(),find()方法

    一對(duì)多和多對(duì)多關(guān)聯(lián)為立即檢索

                          

    三種檢索策略的運(yùn)行機(jī)制

    檢索策略的類型

    類級(jí)別

    關(guān)聯(lián)級(jí)別

    優(yōu)點(diǎn)

    缺點(diǎn)

    優(yōu)先考慮使用的場(chǎng)合

    立即檢索

    立即加載檢索方法指定的對(duì)象

    立即加載與檢索方法指定的對(duì)象關(guān)聯(lián)的對(duì)象,可以設(shè)定批量檢索數(shù)量

    對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài),還是游離狀態(tài),應(yīng)用程序都可以方便地從一個(gè)對(duì)象導(dǎo)航到與它關(guān)聯(lián)的對(duì)象

    1select語(yǔ)句數(shù)目多;(2)可能會(huì)加載應(yīng)用程序不需要訪問(wèn)的對(duì)象,造成內(nèi)存空間的浪費(fèi)

    1)類級(jí)別(2)應(yīng)用程序需要立即訪問(wèn)的對(duì)象(3)使用了二級(jí)緩存

    延遲檢索

    延遲加載檢索方法指定的對(duì)象

    延遲加載與檢索方法指定的對(duì)象,可以設(shè)定批量檢索數(shù)量

    由應(yīng)用程序決定需要加載那些對(duì)象,可以避免執(zhí)行多余的select語(yǔ)句,以及避免加載應(yīng)用程序不需要訪問(wèn)的對(duì)象。因此提高檢索性能,并能節(jié)省內(nèi)存空間

    應(yīng)用程序如果希望訪問(wèn)游離狀態(tài)的代理類實(shí)例,必須保證它在持久化狀態(tài)時(shí)已經(jīng)被初始化

    1)一對(duì)多或多對(duì)多關(guān)聯(lián)(2)應(yīng)用程序不需要立即訪問(wèn)或者根本不會(huì)訪問(wèn)的對(duì)象

    迫切左外連接檢索

    不適用

    通過(guò)左外連接加載與檢索方法指定的對(duì)象

    1)對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài),還是游離狀態(tài),應(yīng)用程序都可以方便地從一個(gè)對(duì)象導(dǎo)航到與它關(guān)聯(lián)的對(duì)象(2)使用了外連接,select語(yǔ)句數(shù)目少

    1)可能會(huì)加載應(yīng)用程序不需要訪問(wèn)的對(duì)象,造成內(nèi)存空間的浪費(fèi)(2)復(fù)雜的數(shù)據(jù)表連接也會(huì)影響檢索性能

    1)多對(duì)一或一對(duì)一關(guān)聯(lián)(2)應(yīng)用程序需要立即訪問(wèn)的對(duì)象(3)數(shù)據(jù)庫(kù)系統(tǒng)具有良好的表連接性能

                             

     映射文件中用于設(shè)定檢索策略的幾個(gè)屬性

     

    屬性

    可選值

    默認(rèn)值

    描述

    lazy

    truefalse

    hibernate2.x版本為false

    hibernate3.x版本為true

    如果為true,表示使用延遲策略。在<class><set>中包含此屬性

    outer-join

    auto、truefalse

    <many-to-one><one-to-one>元素中為auto;<set>元素中為false

    如果為true,表示使用迫切左外連接檢索。在<many-to-one>、<one-to-one><set>元素中包含此屬性

    batch-size

    正整數(shù)

    1

    設(shè)定批量檢索的數(shù)量。如果設(shè)定此項(xiàng),合理的取值在3~10之間。僅適用于關(guān)聯(lián)級(jí)別的立即檢索和延遲檢索,在<class><set>元素中包含此屬性

     

    Set元素的lazyouter-join屬性

    lazy屬性

    outer-join屬性

    檢索策略

    false

    true

    采用立即檢索,這是默認(rèn)的檢索策略,當(dāng)使用hibernate二級(jí)緩存可以考慮使用立即檢索

    false

    false

    采用迫切左外連接檢索。對(duì)于hibernate2.x版本,在映射文件中如果有多個(gè)<set>元素,只允許有一個(gè)<set>元素的outer-join屬性為true

    true

    false

    采用延遲檢索。這是優(yōu)先考慮的檢索策略

    true

    true

    沒(méi)有任何意義

    設(shè)置多對(duì)一關(guān)聯(lián)的檢索策略

    (以客戶和訂單為例)

    Order.hbm.xml<many-to-one>元素的outer-join屬性

    Customer.hbm.xml<calss>元素的lazy屬性

    檢索order對(duì)象時(shí),對(duì)關(guān)聯(lián)的customer對(duì)象使用的檢索策略

    auto

    true

    延遲檢索

    auto

    false

    迫切左外連接檢索

    true

    true

    迫切左外連接檢索

    true

    false

    迫切左外連接檢索

    false

    true

    延遲檢索

    false

    false

    立即檢索

     


        
    1默認(rèn)情況下,Hibernate 3對(duì)集合使用延遲select抓取,對(duì)返回單值的關(guān)聯(lián)使用延遲代理抓取。

    2Hibernate2.1中,lazy屬性的默認(rèn)值為“false”,而在Hibernate3.0中,lazy屬性的默認(rèn)值為“true”。

    3FetchMode.LAZY FetchMode.EAGER被廢棄。取而代之的分別為FetchMode.SELECT FetchMode.JOIN。

    posted on 2006-02-20 09:27 TrampEagle 閱讀(1570) 評(píng)論(1)  編輯  收藏 所屬分類: 學(xué)習(xí)體會(huì)

    Feedback

    # re: hibernate檢索策略(關(guān)于映射部分)[未登錄](méi) 2008-06-18 23:02 test
    vv  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 精品多毛少妇人妻AV免费久久| 免费无码av片在线观看| 久久亚洲精品无码播放| 亚洲国产二区三区久久| 国产V亚洲V天堂无码| 亚洲91精品麻豆国产系列在线| 久久久久精品国产亚洲AV无码| 黄色一级免费网站| 中文字幕免费视频| 中国在线观看免费国语版| 亚洲欧洲日本在线| 亚洲一区无码中文字幕乱码| 一本久久A久久免费精品不卡| 波多野结衣中文字幕免费视频| 亚洲综合精品网站在线观看| 亚洲av无码国产综合专区| 久久九九久精品国产免费直播| 国产香蕉九九久久精品免费 | 99在线视频免费| 日本高清在线免费| 亚洲精品tv久久久久| xxx毛茸茸的亚洲| 中文无码成人免费视频在线观看| 青青草国产免费久久久91| 亚洲AV乱码一区二区三区林ゆな| 男男gay做爽爽免费视频| 一级一级一片免费高清| 最近免费中文字幕4| 亚洲福利精品电影在线观看| 国产精品亚洲精品日韩已满| 亚洲黄网在线观看| 国产V片在线播放免费无码| 91短视频在线免费观看| 亚洲人妻av伦理| 亚洲aⅴ无码专区在线观看春色| 91精品免费不卡在线观看| 亚洲综合色婷婷七月丁香| 亚洲欧洲久久精品| 波多野结衣免费一区视频| 五月婷婷亚洲综合| 亚洲AV乱码久久精品蜜桃|