2017-01-01 4 views
1

私は別のstackoverflowの記事を通じて、これまでに発見されたものを要約を持続対アップデート対するsaveOrUpdate対救うそれはすぐに、エンティティの識別子を返します。 saveを呼び出す前に識別子がすでにエンティティに割り当てられているため、insertはすぐには起動されません。セッションのフラッシュ時に発生します。Hibernateは

persist():saveと同じです。また、フラッシュタイムにも挿入を開始します。

理解が正しいかどうかを確認してください。

Hibernate persist() vs save() method Hibernate saveOrUpdate vs update vs save/persist Hibernate persist vs save What's the advantage of persist() vs save() in Hibernate? http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/objectstate.html

答えて

0

対保存存続 - すべてのメソッドが戻りIDセーブ・トランザクション

内で呼び出されるべきではなく、持続します。分離されたオブジェクトを保存することはできません。

update vs merge - すべてのメソッドはTransaction内で呼び出される必要があります。

オブジェクトをデタッチしたときに、同じプライマリキーのパーシスタンスオブジェクトがある場合、デタッチしたオブジェクトを永続化したい場合は、次のようにします。 - a。デタッチされたオブジェクトに対してupdateを使用すると、例外が発生します。 b。デタッチされたオブジェクトをマージすると、フィールドの値が永続オブジェクトにコピーされ、データベース内で更新されます。

デタッチされたオブジェクトの同じ主キーの永続オブジェクトがない場合は、更新メソッドを使用して永続化することができます。

より良いマージ方法を常に使用する必要があります。それが呼び出されたときに

負荷

getメソッド対取得は、常に負荷がプロキシオブジェクトを返す場所として、データベースをヒット。オブジェクトのフィールドにアクセスすると、データベースにアクセスします。オブジェクトのフィールドのデータを使用する必要がない場合は、そのオブジェクトを別のオブジェクトに渡すだけで済み、getメソッドの代わりにロードを使用する必要があります。