Я много раз рассказывал о flush(), commit(), и я прочитал спящую библию (Java Persistance with Hibernate).hibernate flush без фиксации, используя ручной flushmode
По-прежнему существует некоторая несогласованность в моем понимании того, как эти методы работают.
Вот несколько озадачивает наблюдение:
Предположим, что мы используем ручной flushmode. Мы начинаем новый сеанс, начинаем транзакцию, загружаем и изменяем некоторые постоянные объекты, а затем очищаем и закрываем сеанс, но мы не выполняем метод фиксации транзакции во время этого процесса.
Насколько я понимаю (из библейской гибернации), в этом случае модификации не сохранены в базе данных, хотя вызывается флеш(). Это правильное наблюдение?
Вот другой, связанный с этим вопрос, то hibernate javadoc говорит:
Промывка является процессом синхронизации основного постоянного хранилища с persistable состоянием проведенного в памяти.
Что это значит? Термин «синхронизация» здесь немного расплывчато, это описание не объясняет (что еще, противоречит!) Вышеупомянутое наблюдение.
Может кто-то, пожалуйста, прояснить смысл синхронизации слов здесь, так как я не могу найти ответ на этот вопрос ни в сети, ни в спящей библии.