オブジェクトを HTML フォームにバインドするために Spring Forms を使用しています。オブジェクトはデータベースに既に存在するため、現在編集中です。
問題は、AJAX またはページ全体の要求を介してオブジェクトを更新しようとすると、サーバーに戻ってorg.hibernate.StaleObjectStateException
.
私はDAOを試してみましたが、どちらも機能しませんcontext.currentSession().saveOrUpdate(instance)
。context.currentSession().update(instance)
バージョン列をスプリングバインディングに追加すると、休止状態のversion
列がこの問題を引き起こしているようです。
<sf:hidden id="myobject-id" path="myobject.version"/>
保存することはできますが、AJAX 経由で保存してから完全保存リロード経由で再度保存すると、バージョンが AJAX 保存経由で再度変更されたため (現在のフォームとは異なります)、StaleObjectStateException が再び表示されます。
とにかく、バージョン列をフォームにバインドする必要はありません。これを行うには、よりエレガントな方法が必要です。
私は何を間違っていますか?