私は次のようなアプリケーションを持っています:
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
}
バージョンフィールドを使用してオプティミスティックロックを明示的に構成していません。ただし、2つのリクエストが並行して実行され、同じオブジェクトを削除しようとすると、HibernateOptimisticLockingFailureExceptionが発生する場合と、「CustomException」が発生する場合があります。
オプティミスティックロックを明示的に設定せずにHibernateOptimisticLockingFailureExceptionを取得するのは正常ですか?デタッチされたオブジェクトのデフォルトの楽観的ロックを休止状態にしますか?
このHibernateOptimisticLockingFailureExceptionを処理するために何をしていますか?再試行するか、「サーバービジー」などのデフォルトメッセージでユーザーに通知しますか?