1. 程式人生 > >Hibernate--一級緩存

Hibernate--一級緩存

取出 col 執行 hiberna 不一致 應用程序 span 遊離態 範圍

一級緩存:

  Hibernate的一級緩存是指Session(屬於事務範圍的緩存,由Hibernate管理,無需幹預),它是一塊內存空間,用來存放從數據庫查詢出的java對象,有了一級緩存,應用程序可以減少訪問數據庫的次數,提高了性能。

  在使用Hibernate查詢對象的時候,首先會使用對象屬性的OID值(對應表中的主鍵)在Hibernate的一級緩存進行查找,如果找到,則取出返回,不會再查詢數據庫,如果沒有找到,再到數據庫中進行查詢操作。然後將查詢結果存放到Session一級緩存中

一級緩存管理:

   如果對象不在一級緩存中,數據庫不能自動更新

  將對象從session中移除(持久態-->遊離態):

    evict()

    clear()

快照機制:

  當執行commit()時,Hibernate同時會清理session的一級緩存(flush),也就是將堆內存中的數據與快照中的數據進行對比,如果不一致,會執行同步操作(update)操作,如果一致,則不執行update

  對象必須是持久化對象,才會走快照機制

  快照是數據的副本

  快照屬於一級緩存

  快照是在堆內存中的

  快照的作用:保證數據的一致性

Hibernate--一級緩存