Как правильно сделать недействительным кэш 2-го уровня в спящем режиме из-за пределов транзакции спящего режима - PullRequest
1 голос
/ 04 января 2012

Мы работаем над приложением, которое использует Hibernate 2 (устаревшая часть, которая никогда не обновлялась).Часть этого приложения использует JdbcTemplate для выполнения серии обновлений.Эти обновления происходят вне контекста любой транзакции гибернации.Поскольку обновления влияют на объекты, которые уже находятся в кэше 2-го уровня, мы получаем побочные эффекты с отображением неверных данных из кэша.

Нам необходимо аннулировать / очистить кэш спящего режима.Как правильно сделать это с помощью Hibernate 2?Помните, что мы обновляем объекты вне транзакции гибернации, и после завершения обновлений мы хотим аннулировать кэш или обновить кэш, чтобы он отражал последние данные.

У нас возникли проблемы с поиском информации оэто как Hibernate 2 против более новой версии 3.

1 Ответ

0 голосов
/ 15 мая 2012

Вы можете использовать sessionFactory.getCache() (или entityManagerFactory.getCache() для доступа к кэшу 2-го уровня

...