ユーザーが同じオブジェクトを同時に編集できないようにするメカニズムを実装する必要があります。私のアプリケーションフローは次のとおりです。
- 「一覧」ページへ
- フォームデータテーブルを編集する行を選択
- 編集ボタンをクリックします (「編集」ページへの移動)
- 変更データ
- [保存] または [キャンセル] をクリックします ([リスト] ページに戻ります)。
ステップ 3 で別のユーザーが同じレコード (同じ ID) を編集しているかどうかを確認し、「申し訳ありませんが、別のユーザーがこれを編集しています」などの情報を表示できればと思います。
私の考えは、ログに記録されたユーザーと、現在編集しているテーブル名と ID のマップを保持することです。@Singleton
この目的のために、アプリケーション スコープ Bean (EJB 3.1 など) を使用します。このソリューションの弱点を指摘できますか? 他に提案できますか?
Java EE 6、Seam3、Glassfish 3、および Oracle DB 11 を使用しています。MyBatis を使用していますが、JPA フレームワークは使用していません。