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, Foo
qui 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 exist
comme 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
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes en utilisant
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
quand vous devriez être en utilisant@NotAudited
dans votre cas.RelationTargetAuditMode.NOT_AUDITED
sera tout simplement pas de vérification de la entité cible. Il sera toujours essayer de vérification de laList<Bar>
propriété deFoo
et donc de la table de jointure.De la documentation: