私が行うアプリケーションがあります:2つの要求は、その後、私は時々HibernateOptimisticLockingFailureExceptionを取得し、同じオブジェクトを削除しようと、並列に実行されている場合、私は明示的に、バージョンfield.Howeverでoptimistic lockingを設定していないデタッチされたオブジェクトのデフォルトのオプティミスティックロックを休止しますか?
void deleteObj(id){
MyObj obj = getObjById(id);
if (obj == null) {
throw new CustomException("doesn't exists");
}
em.remove(obj);//em is a javax.persistence.EntityManager
}
を他の時は "CustomException"となります。
オプティミスティックロックを明示的に設定せずにHibernateOptimisticLockingFailureExceptionを取得するのは正常ですか?切り離されたオブジェクトのデフォルトのオプティミスティックロックを休止しますか?
このHibernateOptimisticLockingFailureExceptionを処理するために何をしていますか?再試行するか、「サーバービジー」のようなデフォルトのメッセージでユーザーに通知しますか?
tks! 「存在しない行を削除または更新しようとすると発生します」と、これが私の場合です。例外を処理する良い方法は何ですか?再試行?または「サーバービジー」のような既定のメッセージを送信する必要がありますか? –
ご存知のとおり、再試行しても行が再び表示されることはありません。そして、ビジー状態のサーバーは、データベースから行を消してはいけませんか? – meriton
それを処理する方法については、単に例外を無視しますか?削除すると、すでに行が削除されています。すでに削除されている場合は、すでに行なわれています。 – meriton