簡體   English   中英

如何在 Hibernate 中啟用二級緩存

[英]How to enable second level cache in Hibernate

我的應用程序中需要一些 pojo 對象,所以我想知道如何啟用二級緩存。 到目前為止默認啟用一級緩存,我也想知道二級緩存有哪些優點和缺點。

這是你需要做的:

  1. 設置以下休眠屬性:

     <property name="hibernate.cache.use_second_level_cache">true</property> <property name="hibernate.cache.provider_class">ehcache</property>
  2. 在類路徑中添加一個ehcache.xml文件,其中包含緩存配置條目:

     <cache name="com.mycompany.MyEntity" maxElementsInMemory="50" eternal="true" overflowToDisk="false" timeToIdleSeconds="600" timeToLiveSeconds="600" diskPersistent="false" memoryStoreEvictionPolicy="LRU" />
  3. 為每個實體定義緩存類型:

     @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class MyEntity { ... }

二級緩存是在 hibernate 3.0 中引入的

當我們從數據庫加載任何對象時,hibernate 驗證該對象是否在該特定會話的本地緩存中可用 [意味着一級緩存],如果不可用,則 hibernate 驗證該對象是否在全局緩存中可用或工廠緩存[二級緩存],如果不可用則hibernate將命中數據庫並從那里加載對象,然后首先存儲在會話的本地緩存中[一級]然后在全局緩存中[二級緩存]

當我們從數據庫加載任何對象時,hibernate 驗證該對象是否在該特定會話的本地緩存中可用 [意味着一級緩存],如果不可用,則 hibernate 驗證該對象是否在全局緩存中可用或工廠緩存[二級緩存],如果不可用則hibernate將命中數據庫並從那里加載對象,然后首先存儲在會話的本地緩存中[一級]然后在全局緩存中[二級緩存]

啟用 JPA L2 緩存,使用持久性屬性進行配置

javax.persistence.sharedCache.mode

其值為 NONE | 所有 | ENABLE_SELECTIVE | DISABLE_SELECTIVE | 未指定。 使用此屬性在所有有效的 JPA 實現中都很常見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM