Jak nie kontrolować tabeli łączenia i jednostek powiązanych za pomocą Hibernate Envers?

Używam Hibernate Envers do kontroli moich jednostek.

Mam jedną kontrolowaną jednostkę,Foo, który maList<Bar> jako właściwości. Nie chcę jednak przeprowadzać audytuBar podmioty. Napisałem więc:

@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;
    }

}

Teraz chcę odzyskać wersjęFoo:

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

Niestety, gdy chcę pobrać wszystkie dane (tj. Gdy leniwie ładujebars), Dostaję błądORA-00942: table or view does not exist, jak próbował zapytać:

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

Myślałem o tym, używając@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED), Hibernate Envers zachowałby połączenia zBar elementyobecny jednostka.

Jak więc mogę rozwiązać mój problem, bez konieczności dokładnego sprawdzania tabelT_BAR iT_FOO_BAR (tabela łączenia)? Innymi słowy, gdy odzyskuję listębars z mojej wersji rewizji otrzymuję listębars z mojego obecnego podmiotu (jako powiązania międzyFoo iBar nie są kontrolowane).

Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion