私たちは、オプティミスティック・ロックで休止状態を使用しています。 私たちのエンティティはすべて、@versionアノテーションを持っています。hibernate stalestateExceptionの最適な更新戦略
これはうまくいきます。ユーザーが古くなったオブジェクトを保存しようとすると、stalestateexceptionが発生します。 このケースでは、変更を破棄したり、データベースの現在の値を上書きするための通知画面をユーザに提供したいと考えています。
これは、古い状態の例外の一般的な使用例です。 私の質問はこのユースケースに関連しています。ユーザーが現在のデータベース行を変更して上書きすることを決定した場合、最善の戦略は何ですか?私は、休止状態の参照ガイドと異なるWebサイトを見てきましたが、あなたがstalestateexceptionを自分自身で捕まえなければならないという事実があり、その後、データの上書きをprogrammaticalyで処理する必要があります。 私はhibernateがこの戦略を単純化するいくつかのユーティリティを持っているのだろうと思っています。ユーザーが自分のデータを上書きすることを決定した場合、データベースからエンティティの最後のバージョンを取得し、変更されたオブジェクトをデータベースに保存し直します。 しかし、より洗練されたソリューションがないのだろうかと疑問を感じることはありません。
実際には、「マージUI」を作成することがあります。 しかし、データが上書きされるほど重要ではないユースケースがいくつかあります。このためのデフォルトメソッドがあるのか、自分でアルゴリズムを書く必要があるのか疑問に思っていました。 –
私は恐れていることを認識していません。 –
しかしそれは良い質問です。私はこの状況に取り組むための最善の方法について考えるのにかなりの時間を費やしました! –