ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

@OptimisticLocking

@OptimisticLockingを使用して、エンティティを更新または削除する際にEclipseLinkが使用するオプティミスティック・ロックのタイプを指定します。

注釈要素

表2-45は、この注釈の要素を示しています。

表2-45 @OptimisticLockingの注釈要素

注釈要素 説明 デフォルト

cascade

(オプション) オプティミス・ロック・ポリシーがロックをカスケードする必要のある場所を指定します。私有および孤立の削除オブジェクトを変更すると、TopLinkでバージョンが更新されます。

現在は、VERSION_COLUMNロックでのみサポートされています。

false

selectedColumns

(オプション)オプティミスティックにロックされる列のリストを指定します。

この要素は、type=SELECTED_COLUMNSの場合に必要です。


type

(オプション)使用するオプティミスティック・ロック・ポリシーのタイプは、次のとおりです。

  • ALL_COLUMNS: EclipseLinkは、更新または削除操作を実行する際に、表内のすべてのフィールドをWHERE句と比較します。

  • CHANGED_COLUMNS: EclipseLinkは、更新を実行する際に、WHERE句の変更されたフィールドのみを比較します。

  • SELECTED_COLUMNS: EclipseLinkは、SelectedColumnsで更新または削除操作を実行する際に、WHERE句の選択したフィールドを比較します。

  • VERSION_COLUMN: EclipseLinkは、更新を実行する際に、WHERE句の単一バージョン番号を比較します。

VERSION_COLUMN


使用方法

エンティティまたはMappedSuperclassに@OptimisticLockingを指定できます。

例2-83に、すべての列に@OptimisticLocking注釈を使用する方法を示します。

例2-83 @OptimisticLocking注釈の使用

@Table(name = "EMPLOYEES")
  @OptimisticLocking(type=OptimisticLockingType.ALL_COLUMNS)
  public class Employee implements Serializable {
      ...
  }

例2-83に、単一列にeclipselink-orm.xmlファイルの<optimistic-locking>要素を使用する方法を示します。

例2-84 <optimistic-locking> XMLの使用

<entity name="Employee" class="my.Employee" access="PROPERTY" change-tracking="DEFERRED">
...
    <optimistic-locking type="SELECTED_COLUMNS" cascade="false">
      <selected-column name="id"/>
      <selected-column name="firstName"/>
    </optimistic-locking>
...
</entity>

関連項目

詳細は、次を参照してください。