【问题标题】:hibernate query cache specify cache duration休眠查询缓存指定缓存持续时间
【发布时间】:2011-01-25 06:06:24
【问题描述】:
下面是我如何查询缓存
getHibernateTemplate().setCacheQueries(true);
List<IssSection> result = (List<IssSection>) getHibernateTemplate().findByCriteria(crit);
getHibernateTemplate().setCacheQueries(false);
我可以知道如何指定缓存此方法的最长持续时间吗?假设我想在 5 分钟过期后清除缓存
【问题讨论】:
标签:
java
hibernate
spring
orm
caching
【解决方案1】:
Hibernate 不提供接口来控制缓存的细节,例如您的请求。
相反,您必须选择提供该功能的缓存实现,并对其进行适当配置。
例如你可以使用EhCache 并像这样配置它:
<cache
name="com.somecompany.someproject.domain.Country"
maxElementsInMemory="10000"
eternal="false"
**timeToIdleSeconds="300"**
**timeToLiveSeconds="600"**
overflowToDisk="true"
/>
上面突出显示的两个属性说明了如何配置缓存元素的缓存持续时间。
【解决方案2】:
我可以知道如何指定缓存此方法的最大持续时间吗?
您必须选择支持过期的二级缓存提供程序(EHCache、OSCache、JCS)并配置此特定请求的缓存区域。