<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    超級笨笨

    好腦子,不如一個爛博客
    數據加載中……
    Hibernate的fetch="join"和fetch="select"

    fetch參數指定了關聯對象抓取的方式是select查詢還是join查詢,select方式時先查詢返回要查詢的主體對象(列表),再根據關聯外鍵id,每一個對象發一個select查詢,獲取關聯的對象,形成n+1次查詢;
    而join方式,主體對象和關聯對象用一句外鍵關聯的sql同時查詢出來,不會形成多次查詢。
    如果你的關聯對象是延遲加載的,它當然不會去查詢關聯對象。
    另外,在hql查詢中配置文件中設置的join方式是不起作用的(而在所有其他查詢方式如get、criteria或再關聯獲取等等都是有效的),會使用select方式,除非你在hql中指定join fetch某個關聯對象。

    fetch策略用于定義 get/load一個對象時,如何獲取非lazy的對象/集合。 這些參數在Query中無效。

    fetch策略用于定義 get/load一個對象時,如何獲取非lazy的對象/集合。 這些參數在Query中無效。

    查詢抓取(默認的)在N+1查詢的情況下是不好的,因此我們可能會要求在映射文檔中定義使用連接抓?。?/p>

    <set name="permissions"
    fetch="join">
    <key column="userId"/>
    <one-to-many class="Permission"/>
    </set
    <many-to-one name="mother" class="Cat" fetch="join"/>
    在映射文檔中定義的抓取策略將會有產生以下影響:

    通過get()或load()方法取得數據。

    只有在關聯之間進行導航時,才會隱式的取得數據(延遲抓取)。

    條件查詢

    在映射文檔中顯式的聲明 連接抓取做為抓取策略并不會影響到隨后的HQL查詢。

    通常情況下,我們并不使用映射文檔進行抓取策略的定制。更多的是,保持其默認值,然后在特定的事務中, 使用HQL的左連接抓?。╨eft join fetch) 對其進行重載。這將通知 Hibernate在第一次查詢中使用外部關聯(outer join),直接得到其關聯數據。 在條件查詢 API中,應該調用 setFetchMode(FetchMode.JOIN)語句。

    其實這并不能說明hql能夠按照配置文件設置的join進行抓取,這時 第二級:topic-->forum 的抓取其實已經和hql沒有關系了,因為前面已經產生了另一個select方式的抓取語句。
    而是對象的關聯獲取,假如查詢message時topic是設置為延遲加載的,那么在后面獲取message.topic時,如topic.forum不延遲加載,那么topic-->forum會實現配置的join方式的抓取,這個顯然和hql查詢沒有關系。

    轉載自:http://qinhanbin.javaeye.com/blog/520038

    posted on 2009-12-29 10:15 超級笨笨 閱讀(430) 評論(0)  編輯  收藏 所屬分類: SSH

    主站蜘蛛池模板: 亚洲av再在线观看| 国产成人啪精品视频免费网| 久久亚洲国产午夜精品理论片| 成人精品国产亚洲欧洲| 在线免费观看a级片| 亚洲欧美国产国产一区二区三区| 日本一区二区三区免费高清| 亚洲最大福利视频| 国产精品成人免费视频网站京东| 色天使亚洲综合在线观看| 午夜成人免费视频| 日韩色视频一区二区三区亚洲| 国产一级淫片免费播放电影| 污网站在线观看免费| 中文字幕不卡亚洲| 一区二区三区福利视频免费观看| 18亚洲男同志videos网站| 无码专区永久免费AV网站| 亚洲欧美日韩中文无线码| 免费少妇a级毛片人成网| 国产大片免费天天看| 久久国产亚洲精品麻豆| 在线成人爽a毛片免费软件| 亚洲免费一级视频| 国产一区在线观看免费| 国产免费牲交视频免费播放| 日韩亚洲AV无码一区二区不卡 | 国产亚洲精品VA片在线播放| 成人免费在线观看网站| 特级毛片aaaa免费观看| 亚洲成a人片77777老司机| 无码专区永久免费AV网站| 产传媒61国产免费| 久久国产亚洲高清观看| 四虎影视免费永久在线观看| 伊人免费在线观看| 亚洲午夜在线播放| 国产精品亚洲综合一区| 国产免费丝袜调教视频| 污污污视频在线免费观看| 亚洲国产a∨无码中文777|