18
Hibernateでデタッチされたオブジェクトを再アタッチする適切な方法は何ですか?
同じIDのオブジェクトがすでにセッションに存在している可能性があるにもかかわらず、切り離されたオブジェクトを休止状態のセッションに再アタッチする必要がある状況があり、エラーが発生します。 現在、私は2つのことの1つを行うことができます。 getHibernateTemplate().update( obj ) これは、オブジェクトが休止状態のセッションにまだ存在しない場合にのみ機能します。後で必要になったときに、指定した識別子のオブジェクトがすでにセッションに存在しているという例外がスローされます。 getHibernateTemplate().merge( obj ) これは、オブジェクトが休止状態のセッションに存在する場合にのみ機能します。これを使用すると、オブジェクトが後でセッションに入る必要があるときに例外がスローされます。 これら2つのシナリオを前提として、一般的にセッションをオブジェクトにアタッチするにはどうすればよいですか?よりエレガントな解決策があるはずなので、この問題の解決策のフローを制御するために例外を使用したくありません...