ICriteria SetCacheable время истечения - PullRequest
0 голосов
/ 17 февраля 2010

Я хочу знать, как заставить NHibernate хранить мои запросы в кеше 2-го уровня в течение указанного времени Я вижу это только для кеша сущностей.

Спасибо, что ответили.

1 Ответ

1 голос
/ 17 февраля 2010

Кэш запросов не включен по умолчанию. Чтобы включить его в hibernate.cfg.xml:

<add key="hibernate.cache.use_query_cache" value="true" />

Вы должны указать область кэша для запросов. Если не указан, регион будет «NHibernate.Cache.StandardQueryCache».

Session.CreateCriteria<User>()
    .SetCacheRegion("UserQuery")
    .List();

Для системного кэша области кэша настраиваются в вашем 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...