Будет ли Hibernate сбрасывать мой обновленный постоянный объект при вызове session.close () с FlushMode.AUTO?

Если FlushMode.AUTO установлен, Hibernate сбрасывает мой обновленный постоянный объект, когда я вызываю session.close ( )?

Я знаю, что session.close () обычно не очищает сеанс, но я не уверен, как FlushMode.AUTO влияет на это.

Из документации:

FlushMode.AUTO
Сессия иногда сбрасывается перед выполнением запроса, чтобы гарантировать, что запросы никогда не возвращают устаревшее состояние. Это режим промывки по умолчанию.

Означает ли это, что я могу полагаться на Hibernate, чтобы проверить, что мои изменения иногда сбрасываются до закрытия сеанса?

Небольшой пример кода:

Session session = HibernateSessionFactory.getSession();  
PersistedObject p = session.get(PersistedObject.class,id);  
p.setSomeProperty(newValue);  
session.close();

UPDATE
Согласно документы это места, где будет сброшен сеанс (при использовании AUTO)

  • перед выполнением некоторых запросов
  • из org.hibernate.Transaction.commit ()
  • из Session.flush ()

Это ни о чем не говорит о Session.close ()

5
задан Harry Johnston 5 May 2014 в 21:16
поделиться