Hibernate的緩存機制概念

Hibernate的緩存機制概念:

java對象的屬性(通常是一些集合類型的屬性 )佔用的內存空間。如果對象的佔用的內存很大就稱爲重量級的對象。如果對象的內存小就稱爲輕量級的對象。

Session 的緩存被稱爲hibernate的第一級緩存。SessionFactory的外置緩存稱爲hibernate 的二級緩存。這兩個緩存都位於持久層,它們存放的都是數據庫數據的拷貝。SessionFactory的內置緩存 存放元數據和預定義SQL,   SessionFactory的內置緩存是隻讀緩存。

Session 緩存的三大作用:

1,減少數據庫的訪問頻率,提高訪問性能。

2,保證緩存中的對象與數據庫同步,位於緩存中的對象稱爲持久化對象。

3,當持久化對象之間存在關聯時,Session 保證不出現對象圖的死鎖。

 Session 如何判斷持久化對象的狀態的改變呢?

  Session 加載對象後會爲對象值類型的屬性複製一份快照。當Session 清理緩存時,比較當前對象和它的快照就可以知道那些屬性發生了變化。

Session 什麼時候清理緩存?

1,commit() 方法被調用時

2,查詢時會清理緩存,保證查詢結果能反映對象的最新狀態。

3,顯示的調用session 的 flush方法。

session 清理緩存的特例:

當對象使用 native 生成器 時 會立刻清理緩存向數據庫中插入記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章