オブジェクトを適切に更新するために、次のように書くことができます。
session.merge(object);
しかし、時にはそれでは不十分ですそして私は書かなければなりません
object1 = session.merge(object);
session.update(object1);
この方法の違いを説明してもらえますか?
Hibernate Session Javadoc から:
指定されたオブジェクトの状態を、同じ識別子を持つ永続オブジェクトにコピーします。セッションに現在関連付けられている永続インスタンスがない場合は、ロードされます。永続インスタンスを返します。指定されたインスタンスが保存されていない場合は、のコピーを保存し、それを新しい永続インスタンスとして返します。指定されたインスタンスはセッションに関連付けられません。関連付けが でマップされている場合、この操作は関連付けられたインスタンスにカスケードされcascade="merge"
ます。
指定された切り離されたインスタンスの識別子で永続インスタンスを更新します。同じ識別子を持つ永続インスタンスがある場合、例外がスローされます。関連付けが でマップされている場合、この操作は関連付けられたインスタンスにカスケードされcascade="save-update"
ます。
次のリンクで、次に関する追加情報を見つけることができます。