4

Я хочу, чтобы очистить кэш данные из кэша 2-го уровня с помощью вызова метода ниже:Clear Hibernate второго уровня Cache

sessionFactory.getCache().evictEntityRegions(); 

Я просто хочу знать, есть ли какой-либо вред в этом? Например: что произойдет, если я попытаюсь очистить кеш в середине транзакции?

Заранее спасибо.

ответ

2

Нет, в этом нет вреда. Фактически, то же самое происходит, когда вы настраиваете поставщика кэша для выселения/истечения элементов на основе определенной политики выселения/истечения срока действия.

+0

Привет, Драган. У меня есть случай. Предположим, если какая-то транзакция выполняется, чтобы получить данные из кеша второго уровня и данные в то время. В то же время другой поток вытесняет все кэши области, пока предыдущая транзакция еще не завершена. Тогда что будет в этом случае. Могу ли я получить null из кеша в этой транзакции и произойдет сбой db? Есть ли какие-либо проблемы? –

+1

@VikasVats В этом случае объект уже находится в кеше первого уровня (сеанс) и будет извлечен оттуда к концу транзакции. Если объект вручную выведен из сеанса или весь сеанс вручную очищается, тогда объект будет просто перезагружен из базы данных и сохранен в кэшах первого и второго уровня. В этом нет никаких шансов. –