Попробуй поэкспериментировать с Session.setFlushMode() т.е. поменять FlushMode до выполнения запроса.
В документации там такая штука написана:
В режиме AUTO (по умолчанию) изменения сбрасывается только при завершении транзакции или если в сессии есть изменения, которые могут отразиться на результатах запроса.
В режиме COMMIT изменения сбрасываются только при вызове Transaction.Commit.
В режиме NEVER / MANUAL изменения сбрасываются только если вручную вызвать Session.flush(). Этот режим наиболее эффективен для readonly транзакций.
Мне кажется можно попробовать вариант MANUAL (если в сессии нет изменений) или COMMIT (если в сессии есть изменения).