1. フロー・マネージド・パーシスタンスにおける OptimisticLockingFailureException

    オプティミスティック・ロックは、データベースに物理的なロックを設定することなくデータ保全性を保証する、極めて効果的な並行性制御方式です。強制まではしませんが、フロー・マネージド・パーシスタンスではオプティミスティック・ロックを使用することを是非ともお勧めします。

    パーシスタンス・コンテキストはフラッシュ時にエンティティーのバージョンをチェックし、エンティティーに対する同時変更を検出した場合には OptimisticLockingFailureException (Hibernate での StaleObjectException に相当) をスローします。メモリー内でのエンティティーの存続時間が長ければ長いほど、エンティティーに対応するデータベース値が他のプロセスによって変更される可能性が高くなります。

    Open Session in View パターンでは、前述のとおりエンティティーの永続状態はユーザー・リクエストに依存します。エンティティーが分離されると、その後のユーザー・リクエストでは一般に、エンティティーの永続状態をリストアするためのマージ/再アタッチ/再ロード操作が必要となります。この操作によって、エンティティーとそれに対応するデータベース値が同期されるからです。

    Spring Web Flow 2 でのフロー・マネージド・パーシスタンス

    5 months ago  /  0 notes  /  Source: ibm.com