如何解决Hibernate - Ehcache 配置不起作用不命中二级缓存
我为 Java 应用程序新配置了 ehcache。
这是我的 pom 依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.10.Final</version>
</dependency>
这些是我为persistence.xml添加的新配置
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
<property name="hibernate.cache.provider_configuration_file_resource_path" value="classpath:ehcache.xml"/>
<property name="hibernate.show_sql" value="true"/>
这是启用缓存的实体类。
@Entity
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name = "LABEL")
public class Label implements Serializable{
@EmbeddedId
@GeneratedValue(strategy = GenerationType.IDENTITY)
private LabelKey labelKey;
当我多次向该应用程序发送相同的请求时,我可以在日志中看到 sql select 语句(我已启用 show_sql =true)。我认为这意味着它没有访问二级缓存。
我在这里做错了什么?
解决方法
我也必须添加这个依赖
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.11</version>
</dependency>
在调用 createQuery 方法时,我还必须调用 setCachable(true) 方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。