Comment ne pas auditer une table de jointure et des entités liées en utilisant Hibernate Envers?

J'utilise Hibernate Envers à la vérification de mes entités.

J'ai une entité contrôlée, Fooqui a un List<Bar> en tant que propriétés. Cependant, je ne veux pas de vérification de la Bar entités. Ainsi, j'ai écrit que:

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

}

Maintenant, je veux récupérer une révision de Foo:

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

Malheureusement, lorsque je veux récupérer toutes les données (c'est à dire quand il paresseux charge le bars), j'obtiens l'erreur ORA-00942: table or view does not existcomme il a essayé de requête:

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

Je bien qu'à l'aide @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)Hibernate Envers permettrait de maintenir les liens avec la Bar éléments de la actuel entité.

Alors, comment puis-je résoudre mon problème, sans avoir explicitement d'audit les tables T_BAR et T_FOO_BAR (la table de jointure)? En d'autres mots, lorsque je récupère la liste des bars de mon révision de l'entité, j'obtiens la liste de bars de mon entité courante (comme les liens entre les Foo et Bar ne sont pas audités).

Grâce.

source d'informationauteur romaintaz