hibernate实现二级缓存

1.一级缓存

hibernate自带一级缓存

一级缓存命中条件:同一个entityManagerFactory,同一个entityManager,OID相同

2.二级缓存

--ehcache的依赖

 

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-ehcache</artifactId>
    <version>4.3.8.Final</version>
</dependency>

-- 添加persistence.xml配置信息

 

<!-- 启用二级缓存 -->

 

<property name="hibernate.cache.use_second_level_cache" value="true" />

 

<!-- 正确的 org.hibernate.cache.ehcache.EhCacheRegionFactory -->

 

<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory" />

 

<!-- 启用查询缓存 -->

 

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

--<properties>上面添加配置二级缓存扫描的策略

 

<!-- ALL:所有的实体类都被缓存 -->

 

<!-- NONE:所有的实体类都不被缓存. -->

 

<!-- ENABLE_SELECTIVE:标识 @Cacheable(true) 注解的实体类将被缓存 -->

 

<!-- DISABLE_SELECTIVE:缓存除标识 @Cacheable(false) 以外的所有实体类 -->

 

<!-- UNSPECIFIED:默认值,JPA 产品默认值将被使用 -->

 

<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>

--domain类配置注解

 @Cacheable(true)

public class  xxxx

 

 

 

原文地址:https://www.cnblogs.com/wgyi140724-/p/10736269.html