Как не проводить аудит таблицы соединений и связанных сущностей с помощью Hibernate Envers?

Я использую Hibernate Envers для аудита своих сущностей.

У меня есть одно проверенное лицо,Foo, который имеетList<Bar> как свойства. Однако я не хочу проверятьBar юридические лица. Таким образом, я написал, что:

@Entity
@Audited
public class Foo {

    @JoinTable(name = "T_FOO_BAR", joinColumns = @JoinColumn(name = "FOO_ID"), inverseJoinColumns = @JoinColumn(name = "BAR_ID"))
    @ManyToMany(cascade = PERSIST)
    @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
    public List<Bar> getBars() {
        return bars;
    }

}

Теперь я хочу получить ревизиюFoo:

    AuditReader reader = AuditReaderFactory.get(getEntityManager());
    Foo revision = (Foo) reader.createQuery().forEntitiesAtRevision(Foo.class, 42).getSingleResult();

К сожалению, когда я хочу получить все данные (т. Е. Когда лениво загружаетbars) Я получаю ошибкуORA-00942: table or view does not exist, как он пытался запросить:

select ... from T_FOO_BAR_AUD x, T_BAR y where ...

Я думал, что с помощью@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)Hibernate Envers сохранит связь сBar предметы изcurrent юридическое лицо.

Итак, как я могу решить мою проблему, без необходимости явного аудита таблицT_BAR а такжеT_FOO_BAR (таблица соединения)? Другими словами, когда я получаю списокbars из моей ревизионной сущности я получаю списокbars от моего текущего лица (как ссылки междуFoo а такжеBar не проверяются).

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос