如何在 Hibernate 中启用二级缓存

Ani*_*hav 6 java orm caching hibernate jpa

我的应用程序中需要一些 pojo 对象,所以我想知道如何启用二级缓存。到目前为止默认启用一级缓存,我也想知道二级缓存有哪些优点和缺点。

Vla*_*cea 6

这是你需要做的:

  1. 设置以下 Hibernate 属性:

     <property name="hibernate.cache.use_second_level_cache">true</property>
     <property name="hibernate.cache.provider_class">ehcache</property>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在类路径中添加ehcache.xml文件,其中包含缓存配置条目:

     <cache name="com.mycompany.MyEntity"
        maxElementsInMemory="50"
        eternal="true"
        overflowToDisk="false"
        timeToIdleSeconds="600"
        timeToLiveSeconds="600"
        diskPersistent="false"
        memoryStoreEvictionPolicy="LRU"       
     />
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为每个实体定义缓存类型:

     @Entity
     @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
     public class MyEntity {
             ...
     }
    
    Run Code Online (Sandbox Code Playgroud)