hibernate查询缓存指定缓存持续时间

时间:2010-03-09 01:46:36

标签: java hibernate spring orm caching

下面是我如何查询缓存

   getHibernateTemplate().setCacheQueries(true);
   List<IssSection> result = (List<IssSection>) getHibernateTemplate().findByCriteria(crit);
   getHibernateTemplate().setCacheQueries(false);

我可以知道如何指定缓存此方法的最长时间吗?假设我希望在5分钟到期后清除缓存

2 个答案:

答案 0 :(得分:4)

Hibernate不提供用于控制缓存细节的接口,例如您请求的。

相反,您必须选择提供该功能的缓存实现,并对其进行适当配置。

E.g。你可以使用EhCache并像这样配置它:

<cache
    name="com.somecompany.someproject.domain.Country"
    maxElementsInMemory="10000"
    eternal="false"
    **timeToIdleSeconds="300"**
    **timeToLiveSeconds="600"**
    overflowToDisk="true"
/>

上面两个突出显示的属性说明了如何配置缓存元素的缓存时间。

答案 1 :(得分:2)

  

我是否知道如何指定缓存此方法的最长时间?

您必须选择支持过期的二级缓存提供程序(EHCache,OSCache,JCS),并配置此特定请求的缓存区域。