中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate中如何實現多表查詢

發布時間:2020-11-10 15:57:28 來源:億速云 閱讀:830 作者:Leah 欄目:編程語言

Hibernate中如何實現多表查詢?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.Hibernate中的多表查詢

 1.1SQL中的多表查詢

【交叉連接】

select * from A,B;

【內連接】

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

Select * from A inner join B on 條件;

隱式內連接:

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

【交叉連接】

交叉連接

【內連接】

顯示內連接 from Customer c inner join c.linkmans

隱式內連接

迫切內連接from Customer c inner join fetch c.linkmans

【外連接】

左外連接

右外連接

迫切左外連接

2.Hibernate中的抓取策略

2.1 延遲加載lazy

lazy延遲加載: 查詢的時候不發送sql語句,在使用對象的時候才發送sql語句查詢

延遲加載氛圍類級別的延遲加載和關聯級別的延遲加載

2.1.1類級別的延遲加載

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

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

類級別延遲加載失效:

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

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

2.1.2關聯級別的延遲加載

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

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

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

2.2抓取策略

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

2.2.1 在set上配置的lazy和fetch

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

    * select    :默認值。發送一條select語句查詢關聯對象。

    * join  :發送一條迫切左外連接查詢關聯對象。

    * subselect :發送一條子查詢查詢關聯對象。

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

    * true  :默認值。采用延遲加載。

    * false :不采用延遲加載。

    * extra :及其懶惰。

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

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

    * select    :默認值.發送一條select語句查詢關聯對象。

    * join  :發送一條迫切左外連接查詢關聯對象。

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

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

    * false :不采用延遲加載。

    * no-proxy:

2.2.3 批量抓取

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

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

關于Hibernate中如何實現多表查詢問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陆丰市| 会东县| 乌审旗| 甘洛县| 洪雅县| 团风县| 泊头市| 莫力| 崇左市| 德惠市| 奉节县| 齐齐哈尔市| 贵港市| 博湖县| 松原市| 龙门县| 长寿区| 喀什市| 灵寿县| 平陆县| 马鞍山市| 安阳县| 成都市| 遂平县| 古丈县| 鄱阳县| 星子县| 东乌珠穆沁旗| 淅川县| 石台县| 五峰| 上蔡县| 融水| 汨罗市| 临城县| 株洲县| 阿克| 溧水县| 夏邑县| 大姚县| 临西县|