パッケージ jakarta.persistence

アノテーションインターフェース Version


@TargetSE({METHODSE,FIELDSE}) @RetentionSE(RUNTIMESE) public @interface Version
エンティティクラスのバージョンフィールドまたはプロパティを宣言します。これは、楽観的ロックの失敗を検出し、楽観的トランザクションの整合性を確保するために使用されます。バージョンフィールドまたはプロパティには、エンティティクラスインスタンスによって保持されるエンティティデータのリビジョンを識別するバージョン番号またはタイムスタンプが保持されます。

楽観的ロックの失敗は、エンティティの更新中にバージョンまたはタイムスタンプの検証が失敗した場合、つまり、エンティティインスタンスの状態の読み取りとインスタンスの状態の更新または削除の試行の間で、データベースに保持されているバージョンまたはタイムスタンプが変更された場合に発生します。

バージョン属性は、次の基本型のいずれかである必要があります: intIntegerSEshortShortSElongLongSEjava.sql.TimestampInstantSELocalDateTimeSE

このフィールドはバージョン番号を宣言します。

このフィールドはリビジョンのタイムスタンプを宣言します。

エンティティクラスには、最大 1 つの Version フィールドまたはプロパティが必要です。バージョンフィールドまたはプロパティは、エンティティクラス階層内のルートエンティティクラス、またはそのマップされたスーパークラスの 1 つによって宣言される必要があります。

Version フィールドまたはプロパティは、エンティティのプライマリテーブルにマップする必要があります。

導入:
1.0
関連事項: