Hibernate の session.persist() と session.save() の違いは何ですか? 質問する

Hibernate の session.persist() と session.save() の違いは何ですか? 質問する

Hibernate でのpersist()vsの利点は何か教えていただけますか?save()

ベストアンサー1

からこのフォーラム投稿

persist()は明確に定義されています。一時的なインスタンスを永続化します。ただし、識別子の値が永続インスタンスにすぐに割り当てられることは保証されず、割り当てはフラッシュ時に行われる可能性があります。仕様ではそうは言っていませんが、これが私が抱えている問題ですpersist()

persist()また、トランザクション境界外で呼び出された場合、INSERT ステートメントが実行されないことも保証します。これは、拡張されたセッション/永続コンテキストを使用した長時間実行される会話で役立ちます。

のような方法persist()が必要です。

save()同じことを保証するものではなく、識別子を返します。識別子を取得するために INSERT を実行する必要がある場合 (たとえば、「シーケンス」ではなく「ID」ジェネレータ)、トランザクションの内部または外部に関係なく、この INSERT は直ちに実行されます。これは、拡張されたセッション/永続コンテキストとの長時間の会話では適切ではありません。

おすすめ記事