我想缓存一些我的dao查询。它可以工作,但缓存不会过期。我哪里做错了?
我的ehcache.xml:
<config xmlns='http://www.ehcache.org/v3'
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jsr107="http://www.ehcache.org/v3/jsr107"
xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd
http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd">
<cache alias="test">
<key-type>java.lang.String</key-type>
<value-type>xxx.model.SignalValueType</value-type>
<expiry>
<ttl unit="seconds">5</ttl>
</expiry>
<resources>
<heap unit="entries">100</heap>
<offheap unit="MB">10</offheap>
</resources>
</cache>
</config>在application.properties中,我有以下条目:
spring.cache.jcache.config=classpath:ehcache.xml在pom中:
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>我的问题是:
@Cacheable(value = "test", key = "#code")
@Override
public SignalValueType getSignalValueType(String code) {
SignalValueType signalType = (SignalValueType) sf.getCurrentSession()
.createQuery("FROM SignalValueType svt WHERE svt.code = :code").setParameter("code", code)
.uniqueResult();
return signalType;
}我预计会有5秒过期,但在此之后(以及更长的时间)查询仍会被缓存。我哪里做错了?
发布于 2019-04-05 13:01:31
不应该是ehcache而不是jcache
spring.cache.ehcache.config= {ehcache config location}https://stackoverflow.com/questions/55528443
复制相似问题