Используйте NotAudited для полей, если вы не хотите, чтобы значение / отношение проверялись вообще. Я полагаю, что вы можете использовать это в поле с или без отношения, такие как OneToMany, ManyToMany или просто столбец. Используйте RelationTargetAuditMode.NOT_AUDITED в поле отношения, если вы хотите, чтобы значение проверялось, но не объект на другой стороне отношения. Например, вы хотите проверить значение идентификатора / ключа, но не связанную таблицу.
Вы также можете применить RelationTargetAuditMode ко всему классу, что, как я считаю, просто говорит, что для всех отношений в классе не проверяется другой конец. Это смутило меня, так как я по ошибке использовал эту аннотацию для обозначения «не проверять сущность ниже», что не означает. Просто не используйте аннотацию Audit для класса сущности вообще, если вы не хотите, чтобы сущность проверялась. В других проверенных объектах, которые ссылаются на объект, вам придется либо использовать NotAudited, либо RelationTargetAuditMode.NOT_AUDITED в поле отношения.
Официальная документация на эту тему не очень хороша (http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch15.html) и даже не упоминает NotAudited вообще.
В моих прошлых проектах мне нужно было проверять очень специфический набор таблиц, а не другие, поэтому мне нужно было использовать эти аннотации. У меня есть связи с внешними ключами для некоторых из моих неаудированных организаций из некоторых проверенных организаций. Я часто использую аннотацию RelationTargetAuditMode.NOT_AUDITED, чтобы, по крайней мере, я проверял значение / идентификатор внешнего ключа, а не сущность на другом конце отношения. Если у вас нет этой аннотации, вы получите исключение времени выполнения, в котором ENVERS пытается вставить запись аудита в таблицу аудита для неаудированной сущности, и эта таблица не будет существовать. Я использую аннотацию NotAudited для нескольких отношений таблицы присоединения ManyToMany, которые мне просто не нужно проверять, и в самой таблице проверяемого объекта нет ничего для записи (без идентификатора / значения внешнего ключа).
Ах да, в документах не говорится, что произойдет, если вы используете оба (не уверен, какой из них имеет приоритет), но я не думаю, что использование обоих одновременно в заданном поле предназначено. Используйте один или другой.