Hibernate的get與load的區別

2021-08-27 15:28:30 字數 906 閱讀 2429

hibernate中session 的load和get方法的區別:

延遲載入:load是true 而get是false

思就是load採用延遲載入的方式,而get不是,hibernate思想是 既然這個方法支援延遲載入,他就認為這個物件一定存在於資料庫中。在你執行語句 user user=(user)session.load(user.class,id)的時候,hibernate就幹了一件事

1、查詢session快取 ,如果快取中沒有物件那麼就建立乙個**。

因為延遲載入需要**來執行,所以就建立了個**,ok到此為止, 這句話就幹了這個,並沒有去資料庫互動查詢。在使用的時候load方法會去二級快取中查詢,查詢不到就到資料庫中查詢,如果資料庫也不存在,那麼就會丟擲objectnotfoundexception; 而get()方法不會假定資料是在資料庫中存在的,如果不存在他返回的是null

load查詢順序--->session一級快取查詢---->找不到的話建立**---->使用的時候首先查詢二級快取-->二級快取中沒有的話查詢資料庫--->資料庫中還沒有的話那就丟擲objectnotfoundexception

get查詢順序 --->session一級快取---->hibernate二級快取 --->資料庫中-->如果還沒有就返回null

Hibernate 中get與load的區別

hibernate中用於獲取資料的方法被有意識的分成2種分類 1.立刻載入方法 get list 2.延遲載入方法 load iterate select id from 表 where 條件 n a 所謂的 立刻載入 就是首先在session快取中查詢,然後在二級快取中查詢,還沒有就查詢資料庫,數...

Hibernate中的get與load有什麼區別

學校學習版 1 get是立即載入,load是延遲載入 2 查詢不到資料的時候,get返回null,load拋異常 3 get預設立即載入 返回非 物件 load預設是延遲載入 返回 物件 4 在hibernate實體對映檔案中可修改lazy屬性的值來改變load方法的載入方式 lazy false ...

Hibernate中load 與get 的區別

首先,當給定id 主鍵 不能查詢到對應資料時,load 方法將返回org.hibernate.objectnotfoundexception異常,而get 方法則返回null.其次,load 預設是返回乙個 他並不查詢資料庫,直到真正需要的時候才會去查詢資料庫.比如 book book book s...