1. ホーム
  2. java

[解決済み] Hibernateのsession.persist()とsession.save()の違いは何ですか?

2022-04-21 15:31:34

質問

の利点は何ですか? persist()save() をHibernateで使うか?

どのように解決するのですか?

から このフォーラムの投稿

<ブロッククオート

persist() はよく定義されています。これは のインスタンスを永続化します。 しかし、それは 識別子の値は のインスタンスをすぐに作成することができます。 は、フラッシュ時に割り当てられる可能性があります。 の時間です。仕様書にはそのようなことは書かれていません。 が問題なのですが persist() .

persist() も保証しています。 INSERTステートメントを実行しない はトランザクションの外側で呼び出されます。 の境界を越えています。これは、以下のような場合に有効です。 長時間の会話と 拡張セッション/パーシステンスコンテキスト

のようなメソッドは persist() が必要です。

save() は同じことを保証するわけではありません。 は識別子を返し、もし を取得するためにINSERTを実行する必要があります。 識別子(例:"identity"ジェネレータ。 シーケンスではない)、このINSERTが発生します。 に関係なく、すぐに トランザクションの内側または外側にある。 これは長く続く 拡張された セッション/パーシステンスコンテキスト