程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> JPA 2.0 Vs Hibernate:緩存方法的差異(一)(2)

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

編輯:J2EE

JPA 2.0的二級緩存

二級緩存被引進的JPA 2.0版本。JPA提供了基本的緩存操作的緩存API,而2級緩存共享狀態的實體跨越不同的持久化對象。 2級緩存的持久化對象的基礎,這是高度透明的應用程序。圖2顯示了JPA 2.0級緩存。

Level2Cache
JPA Level 2 (L2) Cache

二級高速緩存通常是用來提高性能。但是,使用緩存可能會導致提取“陳舊”數據,因此您可以選擇禁用緩存。

  1. public interface Cache {
  2. /**
  3. * Whether the cache contains data for the given entity.
  4. */
  5. public boolean contains(Class cls, Object primaryKey);
  6. /**
  7. * Remove the data for the given entity from the cache.
  8. */
  9. public void evict(Class cls, Object primaryKey);
  10. /**
  11. * Remove the data for entities of the specifIEd class (and its
  12. * subclasses) from the cache.
  13. */
  14. public void evict(Class cls);
  15. /**
  16. * Clear the cache.
  17. */
  18. public void evictAll();
  19. }

JPA的2.0緩存API還提供了允許您刷新或繞過使用查詢提示,兩個實例:CacheRetrieveMode和CacheStoreMode定義緩存。您使用CacheRetrIEveMode讀取緩存數據:

  1. Javax.persistence.cache.retrieveMode: CacheRetrIEveMode

繞過緩存,您將直接從數據庫中獲取數據。

您使用CacheStoreMode插入或更新到緩存中,在讀取數據時從數據庫中調取實體數據,如下:

  1. Javax.persistence.cache.storeMode: CacheStoreMode

當CacheStoreMode不會強制一個已經緩存的項目時,從數據庫中讀取刷新的數據。

在刷新、插入或更新到緩存讀取數據時,將強制從數據庫中讀取項目緩存的刷新。

當二級緩存被啟用,第一次提取持久性提供的程序將尋找在持久化對象的實體。如果它不容易找到他們,而不是發送查詢到數據庫緩存中。

這裡是JPA的二級緩存優點和缺點:

優點:

◆避免了已經加載對象的數據庫訪問

◆對於頻繁訪問的未修改的對象讀取更快

缺點:

◆內存消耗大量的對象

◆更新陳舊的數據對象

◆需要對可擴展性差的對象進行頻繁更新

◆增加並發代碼拼寫

二級緩存最好是經常閱讀經常修改的數據,而不是至關重要的。

原文名稱:JPA 2.0 Cache Vs. Hibernate Cache: Differences in Approach

原文地址:http://www.developer.com/Java/

原文作者:Sangeetha S Nitin KL

【51CTO譯稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處、作者及51CTO譯稿和譯者!】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved