Вызов flush синхронизирует состояние сеанса с базой данных.Вам не нужно явно очищать в этой точке.Hibernate достаточно умен, чтобы знать, когда ему необходимо обновить базу данных с помощью сеанса, например, перед выполнением запроса.
В какой-то момент придется понести стоимость 100 мс, поскольку это неизбежное последствие использования базы данных в вашемприложение.Hibernate может отложить эту операцию и выполнить пакетные изменения базы данных, чтобы минимизировать количество обращений к базе данных.
Hibernate сбросит сеанс, когда транзакция завершится (по умолчанию), и поэтому, если вы вызываете load в том же сеансе, выполучит тот же объект обратно из сеанса.Если вы вызовете load в новом сеансе, Hibernate сбросит изменения, и ваш ребенок будет в коллекции.
Если вы очистите сеанс или удалите свой объект из сеанса до выполнения сброса, вы быобнаружите, что вашего ребенка нет.
Эта глава из документов должна помочь.