新聞中心
Hibernate還是比較常用的,于是我研究了一下Hibernate Session緩存,在這里拿出來和大家分享一下,希望對大家有用。

成都創(chuàng)新互聯(lián)公司是專業(yè)的昆明網(wǎng)站建設(shè)公司,昆明接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行昆明網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
java對象的屬性(通常是一些集合類型的屬性 )占用的內(nèi)存空間。如果對象的占用的內(nèi)存很大就稱為重量級的對象。如果對象的內(nèi)存小就稱為輕量級的對象。
Hibernate Session緩存被稱為Hibernate的***級緩存。SessionFactory的外置緩存稱為Hibernate的二級緩存。這兩個緩存都位于持久層,它們存放的都是數(shù)據(jù)庫數(shù)據(jù)的拷貝。SessionFactory的內(nèi)置緩存 存放元數(shù)據(jù)和預(yù)定義SQL, SessionFactory的內(nèi)置緩存是只讀緩存。
Hibernate Session緩存的三大作用:
1,減少數(shù)據(jù)庫的訪問頻率,提高訪問性能。
2,保證緩存中的對象與數(shù)據(jù)庫同步,位于緩存中的對象稱為持久化對象。
3,當(dāng)持久化對象之間存在關(guān)聯(lián)時,Session 保證不出現(xiàn)對象圖的死鎖。
Session 如何判斷持久化對象的狀態(tài)的改變呢?
Session 加載對象后會為對象值類型的屬性復(fù)制一份快照。當(dāng)Session 清理緩存時,比較當(dāng)前對象和它的快照就可以知道那些屬性發(fā)生了變化。
Session 什么時候清理緩存?
1,commit() 方法被調(diào)用時
2,查詢時會清理緩存,保證查詢結(jié)果能反映對象的***狀態(tài)。
3,顯示的調(diào)用session 的 flush方法。
session 清理緩存的特例:
當(dāng)對象使用 native 生成器 時 會立刻清理緩存向數(shù)據(jù)庫中插入記錄。
文章題目:HibernateSession緩存概述
文章源于:http://fisionsoft.com.cn/article/dpoicio.html


咨詢
建站咨詢
