2012-11-14 8 views

答えて

9

@Versionは、Hibernateを使用してOptimistic lockingを実装するために使用されるため、2つのトランザクションが競合を起こして同時にデータをオーバーライドすることはありません。
データが同時に2つのスレッドによって読み込まれ、同じ値を持つ同じ行を更新しようとすると、 Hibernateは@Versionフィールドを使用して、行がすでに更新されているかどうかをチェックします。
コミットする前に、各トランザクションは、他のトランザクションがデータを変更していないことを確認します。 変更された場合、最後のトランザクションでは、「失効データの処理中」エラーが発生します。

@Audited

は答えをHiberate Envers

+0

感謝をauditing functionalityを実行するために使用されると、あなたは正しいですます。.. – Kathir

4

@Version - オプティミスティックロックの実装に使用されます(2.2.1.2. Versioning for optimistic lockingを参照)。オプティミスティック・ロックは、多数の同時書き込みが予想されず、データベース・ロックの価格を支払う必要がない場合に便利です。

@Autidted - Envers APIから来ており、エンティティの変更を別の監査テーブルで自動的に追跡するために使用できます。 Enversを使用して、エンティティの一部の変更履歴を保持します。

+0

感謝の実体部分で答えを – Kathir

関連する問題