91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

郎溪县| 喀什市| 左贡县| 苏州市| 北票市| 中江县| 巩义市| 平阳县| 平利县| 涟源市| 邮箱| 华坪县| 白山市| 苗栗县| 肇庆市| 饶阳县| 瑞昌市| 塔城市| 五台县| 漳平市| 德安县| 通榆县| 湘乡市| 微山县| 天门市| 新巴尔虎左旗| 永州市| 河源市| 安仁县| 嘉定区| 承德县| 息烽县| 长治县| 射洪县| 图们市| 常熟市| 连州市| 榆社县| 益阳市| 咸阳市| 苍南县|