次のTopLinkに含まれているロック・ポリシーでは追加フィールドが不要です。
これらのすべてのポリシーでは、特定のマップされた以前の値の現在値が比較されます。 これらのポリシーの使用時は、データベースの更新にUnitOfWork
を使用する必要があります。各ポリシーはフィールドの比較を、ポリシーで定義されている特定の方法で処理します。
AllFieldsLockingPolicy
を使用するオブジェクトが更新または削除されたときは、常にその表内のすべてのフィールドがwhere
句で比較されます。 その表内の値が、オブジェクトが読み取られたときから変更されている場合は、更新または削除が失敗します。where
句に表れます。ChangedFieldsLockingPolicy
を使用するオブジェクトが更新されたときは常に、変更されたフィールドのみが比較されます。これによって複数のクライアントが、同じ行の異なる部分を失敗せずに変更することが可能です。このポリシーを使用すると、削除は主キーのみで比較されます。 SelectedFieldsLockingPolicy
を使用するオブジェクトが更新または削除されたときは常に、選択したフィールドのリストが文で比較されます。これらのフィールドの更新は、アプリケーションによって手動で行うか、イベントを介して行います。オプティミスティック・ロックが違反されたために更新が失敗したときは常に、OptimisticLockException
がスローされます。これはデータベース修正の実行時にアプリケーションで処理する必要があります。アプリケーションはオブジェクトをリフレッシュし、その変更を再適用します。
Copyright © 1997, 2004, Oracle. All rights reserved.