Hibernate 學習筆記 - Mozilla Firefox
Popularity Report
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
Bookmark History
Public Sticky notes
快取(Cache)是資料庫在記憶體中的臨時容器,從資料庫中讀取的資料在快取中會有一份臨時拷貝,當您查詢某個數據時,會先在快取中尋找是否有相對應的
拷貝,如果有的話就直接返回資料,而無需連接資料庫進行查詢,只有在快取中找不到資料時,才從資料庫中查詢資料,藉由快取,可以提昇應用程式讀取資料時的
效能。
Highlighted by colinwong
在Hibernate中快取分作兩個層級:Session
level與SessionFactory level(又稱Second level快取)。
Highlighted by colinwong
Session會維護一個Map容器,並保留與目前Session發生關係的資料,當您透過主鍵來載入資料時,Session會先依據所要載入的類別與所
給定的主鍵,看看Map中是否已有資料,如果有的話就返回,若沒有就對資料庫進行查詢,並在載入資料後在Map中維護
Highlighted by colinwong
可以透過evict()將某個物件從快取中移去
Highlighted by colinwong
也可以使用clear()清除快取中的所有物件
Highlighted by colinwong
Session level的快取隨著Session建立與銷毀
Highlighted by colinwong
您也可以使用Session的setReadOnly(object, true),設定某物件為唯讀,對於唯讀資料,不會在快取中維護一個複本,不會執行dirty check
Highlighted by colinwong


Public Comment