私はアプリケーション内のエンティティを監査するためにHibernateエンバーを使用しています。私は各エンティティごとに別の_auditテーブルを持っているし、それらのテーブルにフィールドが変更されているかどうかを示す_modブール型の列を持っています。Hibernate Envers:フィールドが2つのリビジョン間で変更されたかどうかを確認する方法?
しかし、私はどのようにクエリでその列を使用していないか、コード内でこのデータをどのように取得するのですか?
次のコードは、監査人のリストを示しています。どのデータが変更されたかを確認するにはどうすればよいですか?
List person = getAuditReader().createQuery()
.forEntitiesAtRevision(Person.class, 12)
.getResultList();
私が答えたところでは、インターセプタのonFlushDirtyメソッドでエンティティが変更されたかどうかを調べ、この情報を監査テーブルに保持することができます。 previousStateとcurrentStateの引数を調べてみましょう。 – nukie