主要講解Hibernate中內置的緩存分布以及它的作用域
Hibernate緩存的種類(lèi)?
答:分為內置緩存和外置緩存兩種.
內置緩存的分類(lèi):
1、Session中的內置緩存,這個(gè)是Hibernate緩存不可缺的組成部分,將持久化對象緩存到Session中
2、SessionFactory中的內置緩存,這個(gè)是Hibernate緩存不可缺的組成部分,將一些數據庫操作的
Sql語(yǔ)句緩存起來(lái)。這個(gè)緩存是只讀的
持久化層的緩存的范圍:
1、事務(wù)范圍:Session的內置緩存就是一個(gè)事務(wù)范圍的,也就是緩存的生命周期隨著(zhù)事務(wù)的建立而產(chǎn)生,
隨著(zhù)事務(wù)的結束而消亡。
2、進(jìn)程范圍:緩存被進(jìn)程內的所有事務(wù)共享,這些事務(wù)由可能并發(fā)訪(fǎng)問(wèn)緩存,因此必須對進(jìn)程范圍的緩存
提供事務(wù)隔離機制。
3、集群范圍:緩存被同一個(gè)機器或多個(gè)機器上的多個(gè)進(jìn)程共享。對于大多數應用要慎重考慮集群范圍的緩存
由于并發(fā)的原因對應用性能影響較大。一般將只讀的數據或者很少修改的數據存儲到集群范圍的緩存中。
外置緩存的支持:
Hibernate提供了EBCache、OSCache、SwarmCache、JBossCache這些第三方插件的適配器。具體的配置方法
請查看相關(guān)的文檔。
注意:在對數據進(jìn)行批量處理的時(shí)候為了提高性能還是直接通過(guò)Hibernate調用底層的數據庫操作API。
聯(lián)系客服