0
<ehcache>
<cache name="query.ContactInfoList"
maxElementsInMemory="200"
eternal="true"
overflowToDisk="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
/>
</ehcache>
public List getContactInfoList(){
hibernateTemplate.setCacheQueries(true);
hibernateTemplate.setQueryCacheRegion("query.ContactInfoList");
List list = hibernateTemplate.find("from AdoContactInfo a where active = 1");
hibernateTemplate.setCacheQueries(false);
return list;
}
peut-je savoir comment clair/rafraîchir cache pour query.ContactInfoList lorsque vous appelez HibernateTemplate saveupdatehibernatetemplate effacer ehcache?
appelez ceci après hiberanteTemplate.saveOrUpdate (contactLIst); hibernateTemplate.flush(); hibernateTempalte.getSessionFactory(). evictQueries ("query.ContactInfoLIst"); ? correct? – cometta
Si vous appelez explicitement 'flush()' pour synchroniser l'état entre des sessions simultanées alors oui, vous devriez l'expulser juste après 'flush()'. Cela ressemble à un scénario plutôt inhabituel, cependant (plus vous auriez à faire face au cache de 1er niveau aussi). Normalement, appeler 'flush()' manuellement devrait être évité; La session sera vidée lors de la validation. Dans ce scénario, vous pouvez expulser les requêtes juste avant cela. – ChssPly76