私は監査にnhibernateenversを使用しています。データベース内のテーブルごとに対応する監査テーブルを作成します。
Enversには、必須の2つのフィールドが必要です。1つはバージョン、もう1つはタイムスタンプです。
ただし、楽観的同時実行性のために、メインテーブルにもバージョンフィールドが必要です。
たとえば、TableA {id、version、name}の場合、監査テーブルは次のようになります:{id、version、name、revision、revisionType}
監査テーブルのフィールド:バージョンとリビジョンはまったく同じであり、どちらにもエントリのバージョンが含まれています。
メインテーブルからバージョンフィールドを削除すると、楽観的同時実行性はnhibernateで機能せず、enversの場合はリビジョンフィールドを指定する必要があります。
この状況にどのように対処できますか?