偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JPA 2.0 Vs Hibernate:緩存方法的差異(二)

原創(chuàng)
開發(fā) 后端
JPA 2.0 Vs Hibernate:緩存方法的差異(二),本文為developer.com的Java頻道7月12日的頭條新聞的第二部分:繼大家講述JPA 2.0(Java Persistence API)的緩存方法之后51CTO將為大家Hibernate緩存原理。

【51CTO獨(dú)家編譯】在前文中我們把JPA 2.0緩存原理進(jìn)行了簡單的介紹,本文將為大家介紹一下Hibernate緩存原理。(51CTO編輯特別推薦專題:Hibernate應(yīng)用開發(fā)教程

Hibernate緩存原理

Hibernate也設(shè)有兩個級別的緩存:第一級和第二級緩存。第一級緩存是存儲在一個特定時域?qū)嵗锏牟樵兘Y(jié)果,而第二級緩存則是與SessionFactory實(shí)例相關(guān)聯(lián)。

Hibernate的默認(rèn)使用的第一級緩存來存儲每一此運(yùn)算的對象。 Hibernate的二級緩存是由SessionFactory支持,根據(jù)訪問對象的應(yīng)用水平來調(diào)用訪問數(shù)據(jù)庫需要的對象次數(shù),從而減少了訪問次數(shù)。Hibernate的緩存不是通過儲存存儲對象本身的實(shí)例來實(shí)現(xiàn)的。

Hibernate 3.0支持以下四個開源項(xiàng)目的第二級緩存實(shí)現(xiàn):

◆EHCache (org.hibernate.cache.EhCacheProvider) -- Default

◆OSCache (org.hibernate.cache.OSCacheProvider)

◆SwarmCache (org.hibernate.cache.SwarmCacheProvider)

◆JBoss TreeCache (org.hibernate.cache.TreeCacheProvider)

第二級緩存可以啟用分別設(shè)置屬性hibernate.cache.use_second_level_cache為正確或錯誤。這里是一個設(shè)置實(shí)例:

  1. <property name="hibernate.cache.use_second_level_cache"> 
  2. true  
  3. </property> 

你可以選擇在hibernate.cfg.xml文件里的hibernate.cache.provider_class屬性應(yīng)用進(jìn)行設(shè)置,這里是另一個設(shè)置實(shí)例:

  1. <property name="hibernate.cache.provider_class"> 
  2. org.hibernate.cache.EhCacheProvider  
  3. </property> 
  4.  

您也可以在類級層或集合層通過設(shè)置在映射文件作為<cache>組成部分啟用緩存:

  1. <cache usage="read-only" region="regionName" include="all"/> 
  2.  

這里有一個在上面的代碼中的組成部分:

◆指定緩存策略的使用情況。

◆指定二級緩存區(qū)域。

◆包括是一個可選屬性(一般情況下為默認(rèn)設(shè)置),如果數(shù)據(jù)不常使用可以取消緩存。

您還可以通過設(shè)置hibernate.cfg.xml文件中的<class-cache>和<collection-cache> 內(nèi)容配置為緩存,在一個單獨(dú)的EhCache配置文件(ehcache.xml)和項(xiàng)目的根目錄里啟用緩存。

您可以執(zhí)行的緩存是同一組的參數(shù)經(jīng)常使用的查詢緩存。查詢緩存設(shè)置為false默認(rèn)情況下,您可以啟用hibernate.cfg.xml文件中加入下面的屬性:

  1. <property name="hibernate.cache.use_query_cache">true</property> 
  2.  

此查詢添加StandardQueryCache和UpdateTimestampsCache,分別為查詢緩存的結(jié)果和最新更新的時間表。查詢結(jié)果可以通過調(diào)用緩存特定的setCacheable查詢。

Hibernate 3.5緩存

Hibernate 3.5緩存策略與Hibernate的緩存策略是相同的,同時添加了在Hibernate 3.2和Hashtable沒有的某些如JBoss Cache 2、JBoss Cache的1.x中緩存策略。

Hibernate 3.5另一個重大進(jìn)步是Infinispan作為另一個二級緩存標(biāo)準(zhǔn)加入。Infinispan是一個開源、可擴(kuò)展的數(shù)據(jù)網(wǎng)格平臺,公開了JCache(支持JSR-107)兼容的緩存接口。 Infinispan提供了更高程度的并發(fā)性,因?yàn)镮nfinispan使用一個專門的數(shù)據(jù)結(jié)構(gòu),而不是僅僅捆綁到Java,同時它也支持PHP,Python和Ruby等。

結(jié)論

在本文中,我們比較的JPA 2.0緩存在Hibernate的緩存。通過引入新的緩存功能,促進(jìn)標(biāo)準(zhǔn)化,JPA的2.0做了很多工作使得開發(fā)更容易。不過,因?yàn)樗械墓δ芏加辛撕荛L時間的支持,Hibernate是在許多方面遙遙領(lǐng)先。

【編輯推薦】

  1. JPA 2.0 Vs Hibernate:緩存方法的差異(一)
  2. JPA與Hibernate的優(yōu)缺點(diǎn)
  3. JPA重整ORM山河
  4. 淺析Hibernate EntityManager
  5. 講解Hibernate核心API
  6. 簡述Hibernate ORM是什么

 

責(zé)任編輯:佚名 來源: 51CTO譯文
相關(guān)推薦

2010-07-12 17:12:37

JPA 2.0緩存Hibernate緩存Java EE

2009-06-01 12:11:31

hibernatejpa復(fù)合主鍵

2009-06-17 15:52:23

Hibernate查詢

2009-06-19 18:36:15

JPAHibernate

2009-06-18 15:24:35

Hibernate二級

2012-02-03 11:31:33

HibernateJava

2021-10-06 23:31:45

HibernateJPASpring Data

2009-09-21 14:59:31

Hibernate二級

2009-09-24 11:04:56

Hibernate二級

2009-06-29 08:48:41

Hibernate緩存

2009-09-22 10:50:04

Hibernate c

2009-09-23 09:37:07

Hibernate緩存

2009-09-21 13:31:10

Hibernate 3

2009-09-21 14:39:40

Hibernate二級

2009-06-10 15:00:58

Hibernate二級配置

2021-07-28 09:00:00

編程語言Kotlin開發(fā)

2009-06-18 14:51:12

Hibernate緩存Hibernate

2009-09-25 13:51:13

Hibernate S

2009-09-25 10:25:54

Hibernate緩存

2009-06-17 15:43:03

Hibernate緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號