Когда вы запускаете запрос обновления или удаления JPQL, достаточно ли Hibernate, чтобы сделать недействительным кеш второго уровня для объекта, который был изменен?Сбой кэша второго уровня Hibernate при выполнении инструкции обновления JPQL
надуманный пример:
Вы имеете JPQL:
update Product p set p.status = 'S' where p.name like 'Monitor%'
Если вы в настоящее время продукты в кэше второго уровня, когда выполняется это заявление, будет Hibernate недействительными все продукты из кэша или делает он ничего не делает для кеша, а продукты в кэше второго уровня теперь недействительны?
Просто FYI ... Я использую JBoss 5.1 с Hibernate и JBossCache
Интересно. Я думаю, вы можете проверить это: set showSql = true (или если не использовать JPA, свойство hibernate для отображения вывода sql на консоли), и посмотреть, снова ли спящий режим извлекает из базы данных объект, который был только что обновлен с помощью hql. – Bozho
Это только скажет вам, перезагружает ли эти элементы в кеш, что я не думаю, что это так. То, что это не скажет вам, это если он недействителен для кеша, поэтому все экземпляры этого объекта должны быть перезагружены из базы данных. Наверное, мне просто нужно сделать тест и узнать. Я надеялся, что у кого-то есть быстрый ответ. – larf311