0

私は監査にnhibernateenversを使用しています。データベース内のテーブルごとに対応する監査テーブルを作成します。

Enversには、必須の2つのフィールドが必要です。1つはバージョン、もう1つはタイムスタンプです。

ただし、楽観的同時実行性のために、メインテーブルにもバージョンフィールドが必要です。

たとえば、TableA {id、version、name}の場合、監査テーブルは次のようになります:{id、version、name、revision、revisionType}

監査テーブルのフィールド:バージョンとリビジョンはまったく同じであり、どちらにもエントリのバージョンが含まれています。

メインテーブルからバージョンフィールドを削除すると、楽観的同時実行性はnhibernateで機能せず、enversの場合はリビジョンフィールドを指定する必要があります。

この状況にどのように対処できますか?

4

1 に答える 1

2

EnversフィールドversionとOptimisticConcurrencyversionフィールドは別のものです。これらがデフォルトの名前である場合は、おそらくどちらか一方の名前を変更する必要があります。

于 2013-03-16T12:06:56.457 に答える