Прошли в спящем режиме спецификация API на FlushMode, но не получил точное различие. Поэтому помогите.
Всегда означает, что перед запуском любого запроса к коллекции или такого рода запрос повторно выполняется к базе данных. Что касается auto, я предполагаю, что под капотами скрывается некоторая «магия», которая знает, что большинство данных не меняется так часто, поэтому вам не всегда нужно промывать. Это также влияет на то, как часто может происходить транзакция. Я говорю «может», потому что некоторые источники говорят, что установка режима flushmode - это всего лишь намек на переход в спящий режим, но см. Эту ветку для обсуждения ...
http://forum.springsource.org/archive/index.php/t-14044. html
Если режим очистки установлен на «АВТО», перед запуском любого запроса спящий режим проверит наличие каких-либо таблиц для обновления. Если это так, промывка будет выполнена, в противном случае - нет. Если режим очистки - «ВСЕГДА», сброс будет происходить, даже если нет таблиц для обновления.
Проверить источник org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush (AutoFlushEvent)