バージョン・ロック・ポリシーの使用
次の各バージョン・ロック・ポリシーについて、特定のデータベース・フィールドを追加する必要があります。
- VersionLockingPolicyでは、数値フィールドを追加します。
- TimestampLockingPolicyでは、タイムスタンプ・フィールドを追加します。
TopLinkでは表からオブジェクトを読み取る際にバージョンが記録されます。クライアントがオブジェクトの書込みを試行すると、オブジェクトのバージョンが表レコードのバージョンと比較されます。
- バージョンが同じ場合は、更新されたオブジェクトが表に書き込まれ、表レコードとオブジェクトの両方のバージョンが更新されます。
- バージョンが異なる場合、書込みは許可されません。これは、このクライアントが最初に読み取った後で別のクライアントがオブジェクトを更新しているためです。
2種類のロック・ポリシーではデータベースへの書込み方法が異なります。
- VersionLockingPolicyでは、バージョン・フィールドの数値が1つずつ増加します。
- TimestampLockingPolicyでは、新しいタイムスタンプが行に挿入されます(このポリシーはサーバーまたはローカルの時間を取得するように設定できます)。
両方のポリシーにおいて、書込みロック・フィールドの値はオブジェクト内の書込み可能マッピングにできます。
値がアイデンティティ・マップに格納されている場合、デフォルトではバージョン・フィールドに属性マッピングは必要ありません。アプリケーションがフィールドをマップしない場合、TopLinkでフィールドの書込みを管理できるように、マッピングを読取り専用にする必要があります。
関連項目
TopLinkディスクリプタについて
フィールド・ロック・ポリシーの使用
詳細オプティミスティック・ロック・ポリシーの指定
オプティミスティック・ロックの使用
ディスクリプタの使用
Copyright © 1997, 2004, Oracle.
All rights reserved.