Я кэшировал некоторые экземпляры домена и запросы в своем приложении Grails. Я ожидаю, что после первого запуска запросов к db последующие вызовы будут попадать только в кеш. Но я вижу, что периодически запросы попадают в БД (после каждых 5-6 раз). В это время данные не обновляются/не вставляются в базу данных. Я использую p6spy для проверки всех зарегистрированных запросов и не вижу никаких обновлений или вставок.
Есть ли какие-то дополнительные настройки, которые мне нужно настроить?
В настоящее время класс домена имеет
static mapping = {
cach true
}
Запросы типа findBy*
имеют набор [cache:true]
.
grails.hibernate.cache.queries
на false вConfig.groovy
и добавитьcache: true
для каждого запроса. 11.03.2012hibernate{cache.use_query_cache=false}
вDataSource.groovy
таким же, какgrails.hibernate.cache.queries=false
вConfig.groovy
? 28.12.2013use_query_cache
включает/выключает эту функцию, ноgrails.hibernate.cache.queries
можно рассматривать как запросы с автоматическим кэшированием, т.е. всегда использовать его для каждого запроса - очень плохая идея - см. tech.puredanger.com/2009/07/10/hibernate-query-cache 28.12.2013