序言

前一篇文章知道了什么是hibernate,并且創(chuàng)建了第一個hibernate工程,今天就來先談?wù)刪ibernate的一級緩存和它的三種狀態(tài),先要對著兩個有一個深刻的了解,才能對后面我要講解的一對多,一對一、多對多這種映射關(guān)系更好的理

 

--WH

一、一級緩存和快照

什么是一級緩存呢?

很簡單,每次hibernate跟數(shù)據(jù)庫打交道時,都是通過session來對要操作的對象取得關(guān)聯(lián),然后在進行操作,那么具體的過程是什么樣的呢?

1、首先session將一個對象加入自己的管理范圍內(nèi),其實也就是把該對象放入自己的一級緩存中,例如,session.save(xxx);這個語句就是將xxx保存在自己的一級緩存中,等待事務(wù)提交后,hibernate才真正的發(fā)sql語句,對數(shù)據(jù)庫進行操作。注意:session進行操作的時候,是將對象加入自己的一級緩存,并不是就直接跟數(shù)據(jù)庫打交道了。

2、在一級緩存中會做些什么事情呢?為什么能夠知道是發(fā)insert、還是update又或者delete呢?那這里就要提到一個快照的概念了,講講內(nèi)部是什么原理。

舉例來說明問題吧。

session.save()