Hibernate的抓取策略

2021-10-01 19:04:54 字數 1028 閱讀 1945

一、延遲載的概述

延遲載入: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...