flush()
выполнит грязную проверку всех постоянных объектов, управляемых этим сеансом гибернации. Если постоянная сущность грязная, hibernate сразу же выдаст SQL-запрос ОБНОВЛЕНИЕ в БД.
Однако, просто выполнение SQL UPDATE не означает, что данные фактически сохранены в БД, вам необходимо зафиксировать транзакцию, чтобы подтвердить фактическое сохранение данных в БД. Таким образом, flush()
только выдает SQL ОБНОВЛЕНИЯ без какого-либо COMMIT для БД, что означает, что вы можете выполнить откат данных, если позже будут обнаружены какие-либо ошибки.
Поскольку вы используете Spring для управления транзакцией, транзакция будет автоматически подтверждена, если ваш метод успешно завершится. В случае возникновения каких-либо исключений перед возвратом метода транзакция автоматически откатится.