乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      hibernate fetch outer-join constrained

       曾今最強(qiáng) 2011-03-22

      當(dāng)fetch=select的時(shí)候,我們查詢從表數(shù)據(jù)的時(shí)候,首先會(huì)根據(jù)主表查出主表對(duì)象,然后根據(jù)主表id生成另一個(gè)select語(yǔ)句去查詢從表數(shù)據(jù),產(chǎn)生1+N的查詢效果。

      當(dāng)fetch=join的時(shí)候,會(huì)根據(jù)一條外連接語(yǔ)句同時(shí)查詢主表和從表數(shù)據(jù)。

      但是fetch只適用于get/load或creteria方式進(jìn)行的查詢

      當(dāng)outer-join=true時(shí),你的lazy屬性無(wú)論設(shè)置為任何值,Collection都會(huì)初始加載(one-to-one沒(méi)有l(wèi)azy 因此不必考慮^_^)

      hibernate中constrained只能在one-to-one的映射中使用,(一般在主表的映射中,有外鍵的那個(gè)表)。如果constrained=true,則表明存在外鍵與關(guān)聯(lián)表對(duì)應(yīng),并且關(guān)聯(lián)表中肯定存在對(duì)應(yīng)的鍵與其對(duì)應(yīng), 另外該選項(xiàng)最關(guān)鍵的是影響save和delete的先后順序。例如增加的時(shí)候,如果constainted=true,則會(huì)先增加關(guān)聯(lián)表,然后增加本表。刪除的時(shí)候反之

      one-to-one的單向關(guān)聯(lián)中,如果constrained=false,則會(huì)在查詢時(shí)就全部取出來(lái),用left outer join的方式。如果constrained=true,hibernate即會(huì)延遲加載sql,只把主表的查出來(lái),等有用到關(guān)聯(lián)表的再發(fā)sql取。

      one-to-one的雙向關(guān)聯(lián)中,必須設(shè)置constrained=true,要不然會(huì)有重復(fù)數(shù)據(jù)讀,如2個(gè)表user,car;在位false時(shí)sql如下:select * from user a left outer join car b on a.id=b.id left outer join on user c on a.id=c.id where a.id=?    刪除的時(shí)候最好刪除從表,刪除主表會(huì)先查詢下主表,在聯(lián)合查詢下

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多