обновление кеша при использовании кеша запросов Hibernate

Я использую механизм кеша запросов в спящем режиме для хранения результатов запроса в кеш-памяти и будут извлечены из кеша. Но если какое-либо обновление в таблице, оно должно быть обновлено в кеше, когда следующий запрос попадает в таблицу. Здесь я использую тот же запрос, что и select * from table. когда я пробовал это, я получаю ту же информацию, даже если таблица обновлена.


person santro    schedule 22.12.2014    source источник
comment
Обновления через спящий режим? Есть несколько серверов - распределенный кластер?   -  person Andy Dufresne    schedule 22.12.2014
comment
Он обновляется каким-то внешним . Не через спящий режим. Есть ли какой-либо другой механизм, кроме спящего режима?   -  person santro    schedule 22.12.2014


Ответы (1)


Если объекты не обновляются через спящий режим, спящий режим не узнает о них, и, следовательно, кеш запросов не обновляется. Если вы обновляетесь через спящий режим, но на другом сервере приложений, вам необходимо использовать распределенный кеш, охватывающий весь кластер. например Кэш дерева JBoss.

Если вы не можете контролировать, чтобы обновления происходили извне, но вы знаете время/период, когда они происходят, вы можете сделать TTL этого кеша запросов короче, чем это, чтобы спящий режим удалял записи из кеша до того, как они будут обновлены извне.

person Andy Dufresne    schedule 22.12.2014
comment
Спасибо за ваш ответ. Есть ли какой-либо другой механизм, а не кеш запросов гибернации для обработки этого - person santro; 22.12.2014
comment
Обновил пост с более подробной информацией. - person Andy Dufresne; 22.12.2014