Как заставить Hibernate загрузить данные из базы данных? - PullRequest
3 голосов
/ 09 августа 2011

Проблема с гибернацией:

Я обновляю столбец "count" в таблице "data" с помощью собственного запроса в моем исходном коде.Позже я хочу загрузить все строки из таблицы «data», но значение столбца «count» не изменилось.

Строки из таблицы «data» загружаются с:

....createQuery ("из данных") .setCacheable (false)
.list ();

Есть идеи, что случилось?

1 Ответ

6 голосов
/ 09 августа 2011

setCacheable(false) не используется (по умолчанию).Кэш, к которому он относится, является кешем второго уровня.Возможно, вы загрузили некоторые сущности в сеансе (например, кэш первого уровня) перед выполнением запроса на обновление.В этом случае запрос select будет выполнен для базы данных, но вернет уже загруженные объекты из сеанса.Таким образом, вам необходимо исключить эти объекты из сеанса до выполнения запроса выбора или полностью очистить сеанс.

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

...