一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Hibernate中的多表查詢及抓取策略

Hibernate中的多表查詢及抓取策略

2020-08-14 15:54rodge Java教程

本文主要介紹了Hibernate中的多表查詢及抓取策略,具有很好的參考價值,下面跟著小編一起來看下吧

1.Hibernate中的多表查詢

 1.1SQL中的多表查詢

【交叉連接】

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中的多表連接查詢

【交叉連接】

交叉連接

【內(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延遲加載: 查詢的時候不發(fā)送sql語句,在使用對象的時候才發(fā)送sql語句查詢

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

2.1.1類級別的延遲加載

使用延遲加載的方法查詢某個類的時候是否采用的延遲稱為是類級別的延遲。默認(rèn)值是true。

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

類級別延遲加載失效:

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

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

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

查詢到某個對象以后,獲得其關(guān)聯(lián)的對象。查詢其關(guān)聯(lián)對象的時候是否采用的延遲。稱為是關(guān)聯(lián)級別的延遲。

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

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

2.2抓取策略

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

2.2.1 在set上配置的lazy和fetch

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

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

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

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

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

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

    * false :不采用延遲加載。

    * extra :及其懶惰。

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

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

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

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

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

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

    * false :不采用延遲加載。

    * no-proxy:

2.2.3 批量抓取

  批量抓取:查詢了多個客戶的時候,查詢多個客戶下的所有聯(lián)系人。

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持服務(wù)器之家!

原文鏈接:http://www.cnblogs.com/rodge-run/p/6416032.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品亚洲精品日韩已方 | chinese456老人gay china外卖员gay国产xnxx | 猛男强攻变sao货 | 99精品免费在线 | 国产实拍会所女技师在线 | 免费国产好深啊好涨好硬视频 | 波多野结中文字幕在线69视频 | 超鹏97国语 | yellow视频在线观看免费 | 日韩国产成人精品视频人 | 欧美理论片手机在线观看片免费 | 禁忌4中文 | 校花的第一次好紧好爽 | 草莓影音 | 免费视频一级片 | 啊好爽视频 | 91网站入口 | 国产美女在线一区二区三区 | 二次元美女互摸隐私互扒 | 门房秦大爷在线阅读 | 青草热久精品视频在线观看 | 脱女学小内内摸出水网站免费 | 国产chinese男同gay | 免费观看的毛片 | 亚洲精品乱码久久久久久蜜桃欧美 | 美女被扣逼 | 亚洲欧美专区精品久久 | 亚洲男人天堂2023 | 高人先生免费观看全集 | 亚洲高清中文字幕一区二区三区 | 国产精品福利一区二区亚瑟 | 日本xxxx69hd| japanese在线观看| 成人性生交大片免费看软件 | 亚洲精品人成网在线播放影院 | 99久久免费国内精品 | 99精品网站 | 天堂网站天堂小说 | 91国产在线第7页 | 久久久久青草大香线综合精品 | 免费刷10000名片赞网站 |