立即檢索 延遲檢索 關聯級別檢索 批量檢索

2021-07-07 09:31:33 字數 984 閱讀 9565

class 標籤中lazy=false 立即檢索

class 標籤中lazy=true 延遲檢索(詳細看get和load的區別)

關聯級別的檢索:

customer c=(customer)session.load(customer.class, 1);

set set=c.getorders()//檢索order物件的set集合

在這個例子中,session.load(customer.class, 1):查詢主體表(customer)

c.getorders().size():查詢客體表(orders)的集合大小

查詢客體表是否發生,以何種方式發生(立即檢索、延遲檢索和迫切左外連線

檢索 ),就是關聯級別檢索,通過set元素lazy屬性設定

在customer.hbm.xml中配置

fetch取值:join select subselect------決定sql語句的形式

若把 fetch 設定為 「join」, lazy 屬性將被忽略

lazy取值:true false extra------決定sql語句發出的時機

當 fetch 屬性為 「join」 時:

檢索 customer 物件時, 會採用迫切左外連線(通過左外連線載入與檢索指定的物件關聯的物件)策略來檢索所有關聯的 order 物件

lazy 屬性將被忽略

query 的list() 方法會忽略對映檔案中配置的迫切左外連線檢索策略, 而採用立即檢索還是延遲載入策略由set集合的lazy屬性決定

批量檢索,從多的一端查詢,查詢所有的訂單

在customer.hbm.xml檔案中增加batch-size屬性

* 在一方(客戶)方的---- 一次最多可以查詢10個客戶的訂單

* 在一方(客戶)方的----一次最多可以查詢1個訂單的10個客戶

Hibernate的延遲檢索和立即檢索

一 立即檢索 所謂立即檢索就是立即裝載和初始化檢索方法指定的物件,即使session關閉了,依然可以正常訪問。立即檢索策略的啟用是通過在對映配置檔案中將lazy實行值設定為false實現的。通俗講就是立即檢索在載入時就把所有和主表關聯的表載入到記憶體中,無論調不呼叫它們。優點是快,缺點是佔記憶體 註...

ad hoc檢索 routing檢索

類似於圖書館裡的書籍檢索,即書籍庫 資料庫 相對穩定不變,不同使用者的查詢要求是千變萬化的。這種檢索就稱為ad hoc。基於web的搜尋引擎也屬於這一類。使用者的查詢要求相對穩定。在routing中,查詢常常稱為profile,也就是通常所說的興趣,使用者的興趣在一段時間內是穩定不變的,但是資料庫 ...

資訊檢索之布林檢索

1 倒排索引的兩部分 圖 1 3 2 構建倒排索引的過程 收集需要建立索引的文件 將每篇文件轉換成乙個個詞條的列表,這個過程成為詞條化 第二章 進行語言學處理,產生歸一化的詞條來作為詞項 第三章 對所有文件按照其中出現的詞項來建立倒排索引,索引中包括一部詞典 存於記憶體 和乙個全體倒排索引表 存於磁...