Je veux savoir comment faire NHibernate stocker mes requêtes au niveau 2-cache de niveau pour le temps spécifié Je le vois uniquement pour le cache des entités.ICriteria SetCacheable temps d'expiration
Merci d'avoir répondu.
Je veux savoir comment faire NHibernate stocker mes requêtes au niveau 2-cache de niveau pour le temps spécifié Je le vois uniquement pour le cache des entités.ICriteria SetCacheable temps d'expiration
Merci d'avoir répondu.
Le cache de requête n'est pas activé par défaut. Pour activer dans votre hibernate.cfg.xml:
<add key="hibernate.cache.use_query_cache" value="true" />
Vous devez spécifier une zone de cache pour les requêtes. Si ce n'est pas spécifié, la région sera "NHibernate.Cache.StandardQueryCache".
Session.CreateCriteria<User>()
.SetCacheRegion("UserQuery")
.List();
Pour syscache, les régions de cache sont configurées en vous App.Config:
<configuration>
<configSections>
<section name="syscache" type="NHibernate.Caches.SysCache.SysCacheSectionHandler,NHibernate.Caches.SysCache" />
</configSections>
<syscache>
<cache region="User" expiration="300" priority="3" />
<cache region="UserQuery" expiration="60" priority="3" />
</syscache>
</configuration>