2010-03-09 55 views
1

就是我要做的查詢緩存Hibernate查詢緩存下面指定緩存持續時間

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

可我知道如何指定的緩存此方法最大持續時間?假設我想在5分鐘到期後清除緩存

回答

4

Hibernate沒有提供用於控制緩存細節的界面,例如您請求的界面。

相反,您必須選擇一個提供該功能的緩存實現,並對其進行適當的配置。

E.g.您可以使用EhCache並配置它,像這樣:

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

兩個突出上述屬性說明您如何配置的緩存時間的持續時間緩存的元素。

2

我可以知道如何指定最大時間來緩存此方法嗎?

你將不得不選擇一個L2緩存配套商過期(的EHCache,OSCache的,JCS)和配置緩存區這個特殊請求。