1. 程式人生 > >Session快取和持久化生命週期

Session快取和持久化生命週期

主要內容:
Session快取原理
Session快取的應用
持久化物件的生命週期

Session快取原理:
Session快取:在Hibernate中被稱為一級快取。
原理:

  1. 當應用程式呼叫Session的CRUD方法、以及呼叫查詢介面的list()、iterate()或filter()方法時,如果在Session快取中還不存在相應的物件,Hibernate就會把該物件加入到第一級快取中
  2. 當清理快取時,Hibernate會根據快取中物件的狀態變化來同步更新資料庫

Session快取的作用。
1.減少訪問資料庫的頻率
2.保證快取中的物件與資料庫中的資料同步
3.當快取中的持久化物件之間存在迴圈關聯關係時,Session會保證不4.出現訪問物件圖的死迴圈,以及由死迴圈引起的JVM堆疊溢位異常

1.當應用程式呼叫Transaction的commit()方法時,commit()方法會清理快取,然後再向資料庫提交事務
2.當應用程式中顯示呼叫session的flush()方法時,通過Session的setFushMode(FlushMode fm)方法來設定清理快取的時間點。
3.FlushMode.ALWAYS
4.FlushMode.AUTO
5.FlushMode.COMMIT
6.FlushMode.MANUAL

持久化物件的生命週期
瞬時(Transient)狀態
持久化(Persistent)狀態
脫管(detached)狀態
移除(removed)狀態

這裡寫圖片描述