19

監査しようとしているかなり複雑なDB構造があります。現在、Enversを実行しており、各オブジェクトに加えられた変更を監査します。これは本当にうまくいきます!

ここで、UIにいくつかの監査情報を表示したいと思います。オブジェクト/テーブルは非常に複雑になるため、監査でどのフィールドが変更されたかを確認する方法を探していました。現在Envers、リビジョンIDがスタンプされた各オブジェクトのスナップショットを保存しています。Envers各オブジェクトのリビジョンを確認し、手動でクエリを実行して何が変更されたかを確認できますが、どのフィールドが変更されたかを保存する方法があるかどうか疑問に思いました。これは可能ですか?2011年からこのリンクを見つけました。各オブジェクトフィールドを手動で確認することをお勧めします。ここでの私の懸念はスピードです。関連するオブジェクトがたくさんあり、更新されたフィールドが1つしかない場合があります。変更されたフィールドを見つけるために、多くのフィールドを照会する必要があります。

変更したフィールドを保存することはできますか?

ありがとう

編集

REVCHANGESテーブルを使用しているので、どのリビジョンで何が変更されたかを確認できますが、これもエンティティレベルでのみであり、フィールドレベルではありません。

4

1 に答える 1

9

新しいバージョンのEnversでは、ブールフラグを使用して、リビジョンごとに変更されたプロパティを追跡できます。見る:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-tracking-properties-changes

于 2013-01-07T10:37:14.523 に答える