FlushMode.AUTOが設定されている場合、session.close()を呼び出すと、Hibernateは更新された永続オブジェクトをフラッシュしますか?
session.close()は通常セッションをフラッシュしないことは知っていますが、FlushMode.AUTOがこれにどのように影響するかはわかりません。
ドキュメントから:
FlushMode.AUTO
クエリが古い状態を返さないようにするために、クエリの実行前にセッションがフラッシュされることがあります。これはデフォルトのフラッシュモードです。
これは、セッションが閉じられる前に、変更がフラッシュされることを確認するためにHibernateに依存できることを意味しますか?
小さなコード例:
Session session = HibernateSessionFactory.getSession();
PersistedObject p = session.get(PersistedObject.class,id);
p.setSomeProperty(newValue);
session.close();
更新ドキュメント
によると、これらはセッションがフラッシュされる場所です(AUTOが使用されている場合)
- いくつかのクエリ実行の前
- org.hibernate.Transaction.commit()から
- Session.flush()から
これはSession.close()については何も言いません