37

@Versionいつ使用し@Audited、Hibernate で使用するかについて、誰かが私を助けてくれますか?

4

2 に答える 2

47

@VersionHibernate で楽観的ロックを実装するために使用されます。これは、2 つのトランザクションが競合して同時にデータをオーバーライドしないことを意味します。
データが 2 つのスレッドによって同時に読み取られ、両方が同じ行を異なる値で更新しようとすると、Hibernate は@Versionフィールドを使用して行が既に更新されているかどうかを確認します。
コミットする前に、各トランザクションは、他のトランザクションがそのデータを変更していないことを確認します。変更すると、最後のトランザクションで「古いデータの処理」エラーが発生します。

@AuditedHibernate Enversのエンティティ部分で監査機能を実行するために使用されます

于 2012-11-14T07:37:28.540 に答える
21

@Version- 楽観的ロックを実装するために使用されます。2.2.1.2 を参照してください。楽観的ロックのバージョン管理。楽観的ロックは、多数の同時書き込みが予想されず、データベース ロックの代償を払いたくない場合に役立ちます。

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

于 2012-11-14T07:35:03.107 に答える