Beim Aktualisieren von Hibernate von 3.3.2.GA auf 4.3.11.Final habe ich eine "EntityNotFoundException" bei der Abfrage von Audit-Tabellen.Hibernate Envers: Entität in einer ManyToOne-Beziehung nicht gefunden
Mein Modell:
@Entity
@Audited
public class A {
[...]
@ManyToOne
@JoinColumn(name = "B_ID", nullable = false)
private EntityB entityB;
[...]
}
@Entity
@Audited
public class B {
[...]
}
Wenn ich Audit-Tabellen in der Datenbank (SQL Server) überprüfen, ich sehe den Grund meiner Ausnahme.
select * from A_AUD where id = 1 => 1 result with VER_REV = 100 (and B_ID = 10)
select * from B_AUD where id = 10 => 2 results with VER_REV = 200 and 300
Wenn ich versuche, mit JPA zu laden:
ist ein träges Laden B_AUDgetAuditReader(anEntityManager).createQuery().forRevisionsOfEntity(A.class false, true).add(AuditEntity.id().eq(1));
Hibernate. Aber in der Abfrage überprüft er VER_REV < = 100. Und kein Ergebnis kann gefunden werden.
Ist es ein Problem meiner Daten, die nicht in Hibernate 3 einchecken? Oder das kann im Code gelöst werden?
Ich habe einige Antworten Elemente wie in gefunden, aber ich kann nicht die "gute Praxis" für dieses Problem finden. Das Aktualisieren von VER_REV in der Datenbank kann Auswirkungen auf andere Entitäten haben (mein Modell ist etwas komplex). Und das "Patchen" Envers muss nur die letzte Lösung sein.
Vielen Dank im Voraus für Ihre Antworten.
Können Sie die Konfigurationseinstellungen, mit denen Sie bootstrappen, mit denen sind Hibernate Envers spezifisch? Könnten Sie auch die genaue Zuordnung von der 'EntityB'-Seite für die Sammlung in Ihrem Post einschließen? – Naros