私はフラッシュ()、コミット()について多くのことをグーグルで調べており、休止状態のバイブル(Java Persistance with Hibernate)を読みました。
これらの方法がどのように機能するかについての私の理解には、まだ矛盾があるようです。
ここにやや不可解な観察があります:
手動フラッシュモードを使用すると仮定しましょう。新しいセッションを開始し、トランザクションを開始し、いくつかの永続オブジェクトをロードして変更してから、セッションをフラッシュして閉じますが、このプロセス中にトランザクションで commit メソッドを実行しません。
私が理解している限り(休止状態の聖書から)、この場合、flush() が呼び出されたにもかかわらず、変更はデータベースに保存されません。これは正しい観察ですか?
ここに別の関連する質問があります。休止状態のjavadocは次のように述べています。
フラッシュは、基になる永続ストアを、メモリに保持されている永続状態と同期するプロセスです。
これは正確にはどういう意味ですか? 同期という用語は、ここでは少しあいまいです。この説明は、上記の観察を説明していません (さらに、矛盾しています!)。
ネットでも休止状態の聖書でも、この質問に対する答えが見つからないため、ここで同期という言葉の意味を正確に明確にしてください。