最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Hibernate中的多表查詢(xún)及抓取策略

 更新時(shí)間:2017年02月19日 17:02:45   作者:rodge  
本文主要介紹了Hibernate中的多表查詢(xún)及抓取策略,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

1.Hibernate中的多表查詢(xún)

 1.1SQL中的多表查詢(xún)

【交叉連接】

select * from A,B;

【內(nèi)連接】

顯示內(nèi)連接:inner join(inner 可以省略)

Select * from A inner join B on 條件;

隱式內(nèi)連接:

Select * from A,B where 條件;

【外連接】

左外連接:left outer join

Select * from A left outer join B on 條件;

右外連接:right outer join

Select * from A right outer join B on 條件;

1.2Hibernate中的多表連接查詢(xún)

【交叉連接】

交叉連接

【內(nèi)連接】

顯示內(nèi)連接 from Customer c inner join c.linkmans

隱式內(nèi)連接

迫切內(nèi)連接from Customer c inner join fetch c.linkmans

【外連接】

左外連接

右外連接

迫切左外連接

2.Hibernate中的抓取策略

2.1 延遲加載lazy

lazy延遲加載: 查詢(xún)的時(shí)候不發(fā)送sql語(yǔ)句,在使用對(duì)象的時(shí)候才發(fā)送sql語(yǔ)句查詢(xún)

延遲加載氛圍類(lèi)級(jí)別的延遲加載和關(guān)聯(lián)級(jí)別的延遲加載

2.1.1類(lèi)級(jí)別的延遲加載

使用延遲加載的方法查詢(xún)某個(gè)類(lèi)的時(shí)候是否采用的延遲稱(chēng)為是類(lèi)級(jí)別的延遲。默認(rèn)值是true。

Customer customer = session.load(Customer.class,1l);// 默認(rèn)就會(huì)采用延遲加載,這種稱(chēng)為是類(lèi)級(jí)別的延遲。 

類(lèi)級(jí)別延遲加載失效:

* final修飾這個(gè)類(lèi),不能產(chǎn)生代理類(lèi),延遲加載就會(huì)失效。

* 在<class>上配置lazy=”false”

2.1.2關(guān)聯(lián)級(jí)別的延遲加載

查詢(xún)到某個(gè)對(duì)象以后,獲得其關(guān)聯(lián)的對(duì)象。查詢(xún)其關(guān)聯(lián)對(duì)象的時(shí)候是否采用的延遲。稱(chēng)為是關(guān)聯(lián)級(jí)別的延遲。

Customer c = session.get(Customer.class,1l);
c.getLinkMans(); // 查詢(xún)關(guān)聯(lián)對(duì)象的時(shí)候,是否采用延遲加載。

關(guān)聯(lián)級(jí)別的延遲往往會(huì)與抓取策略一起使用,優(yōu)化程序。(關(guān)聯(lián)級(jí)別的延遲在<set>或者是<many-to-one>標(biāo)簽上的延遲加載)

2.2抓取策略

抓取策略指的是查找到某個(gè)對(duì)象后,抓取其關(guān)聯(lián)的對(duì)象的時(shí)候采用的策略。抓取策略就是在關(guān)聯(lián)對(duì)象的配置上(<set>和<many-to-one>)配置fetch屬性。

2.2.1 在set上配置的lazy和fetch

fetch:抓取策略,控制SQL語(yǔ)句的發(fā)送的格式。

    * select    :默認(rèn)值。發(fā)送一條select語(yǔ)句查詢(xún)關(guān)聯(lián)對(duì)象。

    * join  :發(fā)送一條迫切左外連接查詢(xún)關(guān)聯(lián)對(duì)象。

    * subselect :發(fā)送一條子查詢(xún)查詢(xún)關(guān)聯(lián)對(duì)象。

lazy:延遲加載,控制SQL語(yǔ)句的發(fā)送的時(shí)候。

    * true  :默認(rèn)值。采用延遲加載。

    * false :不采用延遲加載。

    * extra :及其懶惰。

2.2.2 在many-to-one上配置的lazy和fetch

fetch:抓取策略,控制SQL語(yǔ)句的發(fā)送的格式。

    * select    :默認(rèn)值.發(fā)送一條select語(yǔ)句查詢(xún)關(guān)聯(lián)對(duì)象。

    * join  :發(fā)送一條迫切左外連接查詢(xún)關(guān)聯(lián)對(duì)象。

lazy:延遲加載,控制SQL的發(fā)送的時(shí)機(jī)。

    * proxy :默認(rèn)值。是否采用延遲,需要由另一方類(lèi)上的延遲加載來(lái)決定。

    * false :不采用延遲加載。

    * no-proxy:

2.2.3 批量抓取

  批量抓?。翰樵?xún)了多個(gè)客戶(hù)的時(shí)候,查詢(xún)多個(gè)客戶(hù)下的所有聯(lián)系人。

  在Customer.hbm.xml中<set>上配置batch-size=”n”

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • 面試突擊之跨域問(wèn)題的解決方案詳解

    面試突擊之跨域問(wèn)題的解決方案詳解

    跨域問(wèn)題本質(zhì)是瀏覽器的一種保護(hù)機(jī)制,它的初衷是為了保證用戶(hù)的安全,防止惡意網(wǎng)站竊取數(shù)據(jù)。那怎么解決這個(gè)問(wèn)題呢?接下來(lái)我們一起來(lái)看
    2022-09-09
  • java獲取鼠標(biāo)在屏幕上坐標(biāo)的方法

    java獲取鼠標(biāo)在屏幕上坐標(biāo)的方法

    本文介紹的是如何用java獲取鼠標(biāo)在屏幕上的坐標(biāo),這個(gè)功能其實(shí)沒(méi)什么難度可言,在這里分享給大家,是因?yàn)橛袝r(shí)候我們需要這個(gè)工具,Java作為跨平臺(tái)語(yǔ)言的優(yōu)勢(shì)在這個(gè)軟件就可以體現(xiàn)出來(lái),不需修改就可以在windows、mac、Linux上使用這個(gè)軟件。下面來(lái)一起看看詳細(xì)的介紹吧。
    2016-12-12
  • 使用Java實(shí)現(xiàn)簽字功能的示例代碼

    使用Java實(shí)現(xiàn)簽字功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)簽字功能,同時(shí)支持將簽字圖像保存為PNG格式和將簽字添加到PDF文檔中,感興趣的可以了解下
    2024-02-02
  • 解決SpringBoot跨域的三種方式

    解決SpringBoot跨域的三種方式

    前后端分離是目前的趨勢(shì),解決跨域問(wèn)題也是老生常談的話(huà)題了,我們了解一下什么是域和跨域。域:協(xié)議 + 域名 + 端口;三者完全相同則為同域,反之有其一不同均為不同域??缬蛘?qǐng)求:當(dāng)前【發(fā)起請(qǐng)求】的域和【請(qǐng)求指向】的域?qū)儆诓煌驎r(shí),該次請(qǐng)求稱(chēng)之為跨域請(qǐng)求
    2021-06-06
  • springboot+RabbitMQ+InfluxDB+Grafara監(jiān)控實(shí)踐

    springboot+RabbitMQ+InfluxDB+Grafara監(jiān)控實(shí)踐

    這篇文章主要介紹了springboot+RabbitMQ+InfluxDB+Grafara監(jiān)控實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Java Spring AOP之PointCut案例詳解

    Java Spring AOP之PointCut案例詳解

    這篇文章主要介紹了Java Spring AOP之PointCut案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java返回分頁(yè)結(jié)果集的封裝代碼實(shí)例

    Java返回分頁(yè)結(jié)果集的封裝代碼實(shí)例

    這篇文章主要介紹了java返回分頁(yè)結(jié)果集的封裝代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 記一次線程爆滿(mǎn)導(dǎo)致服務(wù)器崩潰的問(wèn)題排查及解決

    記一次線程爆滿(mǎn)導(dǎo)致服務(wù)器崩潰的問(wèn)題排查及解決

    這篇文章主要介紹了記一次線程爆滿(mǎn)導(dǎo)致服務(wù)器崩潰的問(wèn)題排查及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java結(jié)構(gòu)型設(shè)計(jì)模式之橋接模式詳細(xì)講解

    Java結(jié)構(gòu)型設(shè)計(jì)模式之橋接模式詳細(xì)講解

    橋接,顧名思義,就是用來(lái)連接兩個(gè)部分,使得兩個(gè)部分可以互相通訊。橋接模式將系統(tǒng)的抽象部分與實(shí)現(xiàn)部分分離解耦,使他們可以獨(dú)立的變化。本文通過(guò)示例詳細(xì)介紹了橋接模式的原理與使用,需要的可以參考一下
    2022-09-09
  • Java中的WeakHashMap源碼分析

    Java中的WeakHashMap源碼分析

    這篇文章主要介紹了Java中的WeakHashMap源碼分析,WeakHashMap可能平時(shí)使用的頻率并不高,但是你可能聽(tīng)過(guò)WeakHashMap會(huì)進(jìn)行自動(dòng)回收吧,下面就對(duì)其原理進(jìn)行分析,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

双柏县| 邯郸市| 秦皇岛市| 齐齐哈尔市| 柳州市| 徐汇区| 同德县| 怀仁县| 长泰县| 克什克腾旗| 禹州市| 青浦区| 中阳县| 万源市| 长泰县| 电白县| 双鸭山市| 额尔古纳市| 行唐县| 沈丘县| 南京市| 古交市| 武清区| 闽侯县| 闽侯县| 太和县| 康乐县| 外汇| 汉川市| 扎赉特旗| 宁蒗| 合水县| 大连市| 三亚市| 洞口县| 鱼台县| 大余县| 湘乡市| 凤翔县| 柯坪县| 东安县|