一、延遲載的概述
延遲載入:lazy(懶載入)。執行到該行**的時候,不會傳送語句去進行查詢,在真正使用這個物件的屬性的時候才會 傳送sql語句進行查詢。
延遲載入的分類
1、類級別的延遲載入
指的是通過load方法查詢某個物件的時候,是否採用延遲。session.load(customer.class,1l);
類級別延遲載入通過上的lazy進行配置,如果讓lazy失效:
將lazy設定為false
將持久化類使用final修飾
hibernate. initialize()
2、關聯級別的延遲載入
指的是在查詢到某個物件的時候,查詢其關聯的物件的時候,是否採用延遲載入。
customer customer = session.get(customer.class,1l);
customer.getlinkmans();----通過客戶獲得聯絡人的時候,聯絡人物件是否採用了延遲載入,稱為是關聯級別的延遲。
抓取策略往往會和關聯級別的延遲載入一起使用,優化語句。
二、抓取策略
抓取策略的概述
fetch:抓取策略,控制sql語句格式
lazy:延遲載入,控制查詢關聯物件的時候是否採用延遲
在實際開發中,一般都採用預設值。如果有特殊的需求,可能需要配置
join。上的fetch和lazy
fetch :抓取策略,控制sql語句格式。
lazy :延遲載入,控制查詢關聯物件的時候是否採用延遲。
在實際開發中,一般都採用預設值。如果有特殊的需求,可能需要配置
join。
批量抓取
什麼是批量抓取
一批關聯物件一起抓取,batch-size
............從黑馬教程複製過來的筆記
hibernate 抓取策略
1.單端 對端是one,即many2one 1.1 在用many2one時,fetch可以採取select或者join.用select時,會另發一條語句載入關聯物件。用join時,用一條語句就查上來,相當於資料庫裡面的連線,內連線外連線取決於外來鍵是否允許為空。注意 這個規則僅適用於get或者loa...
Hibernate抓取策略
抓取策略指的是我們在獲取資料時,告訴hibernate以何種sql的方式去獲取,hibernate有三種抓取方式可供選擇,分別是select join subselect 該屬性只能在集合標籤和關聯關係標籤上使用。xml version 1.0 encoding utf 8 cn.hibernate...
hibernate 抓取策略
抓取策略 fetching strategy 抓取策略 fetching strategy 是指 當應用程式需要在 hibernate實體物件圖的 關聯關係間進行導航的時候,hibernate如何獲取關聯物件的策略。抓取策略可以在o r對映的元資料中宣告,也可以在特定的hql 或條件查詢 crite...