Когда вы выполняете SELECT
, поставщик сохраняемости определяет, следует ли сбрасывать предыдущие операции CRUD, которые были выполнены ранее в той же транзакции.
Это делается для того, чтобы убедиться, что возвращаемый результат верен.
Теоретически, когда вы делаете SELECT, который содержит ссылку на сущность, которая была изменена в текущем сеансе, должна произойти очистка.
Вы можете попробовать:
a) Установите режим промывки на: <property name="org.hibernate.flushMode" value="AUTO"/>
.
Это должно быть по умолчанию, но вы можете переопределить это. Это необходимо для того, чтобы:
Сеанс иногда сбрасывается перед выполнением запроса, чтобы
убедитесь, что запросы никогда не возвращают устаревшее состояние.
b) Установите режим промывки на: <property name="org.hibernate.flushMode" value="ALWAYS"/>
.
Будьте осторожны с этим как:
Сеанс сбрасывается перед каждым запросом.
c) Выполните инструкцию session.flush()
перед этим запросом (в крайнем случае)