Kann ich Hibernate Envers-spezifische Tabellen mit Liquibase erstellen?

8

Unsere Java-App ist Spring-basiert und wir haben Domain-Klassen und das entsprechende Schema, das über Liquibase generiert wird.

Wir planen, Unterstützung für eine einzelne zu überprüfende Domäne hinzuzufügen.

a. Wir haben nicht hibernate.xml und hibernate.cfg.xml, stattdessen verwenden wir application-context.xml. Wie erstelle ich Audit-Tabelle durch Anmerkungen wie @Audited.

Wie löse ich dieses Problem? Ich habe die Hibernate-Konfiguration als

hinzugefügt %Vor%

@Audited Annotation in meiner Domain-Klasse hinzugefügt

%Vor%

Diese Konfiguration hat jedoch keine Überwachungstabellen in der Entwicklungsumgebung erstellt. Es ist nicht klar, welche zusätzliche Konfiguration ich hier vermisse.

b. Wie sollte ich das erforderliche envers-spezifische Schema mit Liquibase erstellen? Das Produktionsteam ist nicht damit einverstanden, das SQL-Schema automatisch auch in der Produktionsumgebung zu erzeugen.

    
SST 21.01.2015, 04:31
quelle

1 Antwort

2

Ich verwende in unserem Projekt Hibernate, Envers und Liquibase.

Die Lösung zum Hinzufügen von envers zu der Entität ExampleEntitity mit der db-Tabelle exampleEntitity (nur Tabelle, wenn es sich um eine einfache Entität handelt und wir keine Beziehungen prüfen):

Zuerst , fügen Sie zu liquibase <changeSet> tags hinzu, zB:

%Vor%

id , (...) - & gt; Felder aus der Tabelle exampleEntity , die Sie überwachen möchten.

Zweite , fügen Sie @Audited adnotation zu der Entität ExampleEntitity hinzu (oder @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) , wenn Sie keine verwandten Entitäten auditieren möchten).

Das ist alles. Jetzt werden alle Änderungen der Instanzen ExampleEntitity in der Tabelle exampleEntitity_AUD gespeichert.

    
WGawel 24.03.2016 11:42
quelle