Делает ли кеш 2-го уровня Hibernate недействительным при запуске оператора обновления JPQL

StackOverflow https://stackoverflow.com/questions/2023857

  •  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.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top