Делает ли кеш 2-го уровня Hibernate недействительным при запуске оператора обновления JPQL
-
19-09-2019 - |
Вопрос
Когда вы запускаете запрос на обновление или удаление JPQL, достаточно ли умен Hibernate, чтобы сделать недействительным кеш 2-го уровня для измененного объекта?
Надуманный пример:
У вас есть JPQL:
update Product p set p.status = 'S' where p.name like 'Monitor%'
Если в настоящее время у вас есть продукты в кеше 2-го уровня при выполнении этого оператора, сделает ли Hibernate недействительными все продукты из кеша или он ничего не делает с кешем, и продукты в кеше 2-го уровня теперь недействительны?
Просто к вашему сведению...Я использую JBoss 5.1 с Hibernate и JBossCache.
Решение
После запуска моего собственного теста и обнаружения эта ошибка похоже, что это сделает недействительным ВЕСЬ кеш второго уровня, а не только кеш второго уровня для любых объектов, участвующих в обновлении.
Не связан с StackOverflow