Wie kann ich eine Join-Tabelle und verwandte Entitäten nicht mit Hibernate Envers überwachen?
Ich verwende Hibernate Envers, um meine Entitäten zu prüfen.
Ich habe eine geprüfte Stelle,Foo
, die eine hatList<Bar>
als Eigenschaften. Ich möchte das jedoch nicht prüfenBar
Entitäten. So schrieb ich das:
@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;
}
}
Jetzt möchte ich eine Revision von abrufenFoo
:
AuditReader reader = AuditReaderFactory.get(getEntityManager());
Foo revision = (Foo) reader.createQuery().forEntitiesAtRevision(Foo.class, 42).getSingleResult();
Leider, wenn ich alle Daten abrufen möchte (d. H. Wenn es faul lädt diebars
) Bekomme ich den FehlerORA-00942: table or view does not exist
, als es versuchte abzufragen:
select ... from T_FOO_BAR_AUD x, T_BAR y where ...
Ich dachte das mit@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
, Hibernate Envers würde die Links mit dem behaltenBar
Gegenstände deraktuell Entität.
Wie kann ich mein Problem lösen, ohne die Tabellen explizit prüfen zu müssen?T_BAR
undT_FOO_BAR
(der Join-Tisch)? Mit anderen Worten, wenn ich die Liste vonbars
Von meiner Revisionseinheit erhalte ich die Liste vonbars
von meiner jetzigen Entität (als die Verbindungen zwischenFoo
undBar
werden nicht geprüft).
Vielen Dank.