Hibernate での保存オプション
Hibernate には、データベースにデータを永続化するための複数の方法が用意されており、それぞれが特定の目的を果たします。これらの違いを理解することは、データベースの対話を最適化するために重要です。
save
新しいエンティティを永続化し、存在しない場合は一意の識別子を割り当てます。識別子が存在する場合、更新操作を実行します。
update
既存の識別子を使用してエンティティを永続化しようとします。識別子が欠落している場合は、例外がスローされます。
saveOrUpdate
識別子の存在に基づいて、save または update を動的に呼び出します。識別子が存在しない場合は、save が使用されます。それ以外の場合は、update.
saveOrUpdateCopy
非推奨となり、merge に置き換えられます。
merge
一時的なエンティティまたは切り離されたエンティティを更新または保存するために使用されます。一時オブジェクトは一度も永続化されていない新しいオブジェクトであり、デタッチされたオブジェクトは以前に永続化されていますが、Hibernate セッションには関連付けられていません。
persist
向けに特別に設計されています。一時的なオブジェクトを保存します。 save とは異なり、生成された識別子は返されません。
正しい方法の選択
save: 新しいエンティティを保存したり、次の情報に基づいてレコードを更新したりする場合識別子。
update: 明示的に更新する場合既存のエンティティ。
saveOrUpdate: エンティティが新規か既存か不明なシナリオ用。
merge: 一時的な更新または保存用
persist: 新規保存用識別子の取得を必要としないエンティティ。
以上がHibernate の「save」、「persist」、「update」、「saveOrUpdate」、および「merge」: いつどれを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。