値/関係をまったく監査したくない場合は、フィールドで NotAudited を使用します。OneToMany、ManyToMany、または単なる列などの関係の有無にかかわらず、フィールドでこれを使用できると思います。値を監査するが、関係の反対側のエンティティは監査しない場合は、関係フィールドで RelationTargetAuditMode.NOT_AUDITED を使用します。たとえば、ID/キー値を監査したいが、関連テーブルは監査したくないとします。
RelationTargetAuditMode をクラス全体に適用することもできます。これは、クラス内のすべての関係が相手を監査しないと言っているだけだと思います。この注釈を誤って使用して、以下のエンティティを監査しないことを意味していたため、これは私を混乱させました。これは、それが意味するものではありません。エンティティを監査したくない場合は、エンティティ クラスに Audit アノテーションをまったく付けないでください。エンティティを参照する他の監査済みエンティティでは、関係フィールドに NotAudited または RelationTargetAuditMode.NOT_AUDITED を使用する必要があります。
公式ドキュメントは、このトピック ( http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch15.html ) についてあまり良くなく、NotAudited についてもまったく言及していません。
私の過去のプロジェクトでは、他のテーブルではなく非常に特定のテーブル セットを監査する必要があったため、これらの注釈を使用する必要がありました。いくつかの監査対象エンティティから、いくつかの非監査エンティティへの外部キー関係があります。私はしばしば RelationTargetAuditMode.NOT_AUDITED アノテーションを使用して、関係の反対側のエンティティではなく、少なくとも外部キーの値/ID を監査します。この注釈がない場合、ENVERS が監査されていないエンティティの監査テーブルに監査レコードを挿入しようとする実行時例外が発生し、そのテーブルは存在しません。監査する必要のないいくつかの ManyToMany 結合テーブルの関係に NotAudited 注釈を使用し、監査対象のエンティティ テーブル自体に記録するものは何もありません (外部キー ID/値はありません)。
そうそう-両方を使用するとどうなるかはドキュメントには記載されていませんが(どちらが優先されるかはわかりません)、特定のフィールドで両方を同時に使用することは意図されていないと思います。どちらかを使用してください。