2016-08-01 5 views
-2

Ich entwickle Java Web JSF und Hibernate (DB MySQL). Ich habe eine Tabelle mit den Produktfeldern (id, name, description und price), angenommen, dass ein Datensatz gespeichert wurde alle (1, 'cd', 'bee gees', 11.90). Nach dem Speichern ändert der Benutzer die Registrierung in (1 'dvd' 'bee gees', 15.90). Eine neue Registrierung wird jedoch in einer neuen Zeile (oder einer neuen Tabelle) gespeichert, um alle mit dem Produktcode verbundenen Änderungen zu verfolgen. Kann jemand wissen, wie ich das tun kann?Halten Sie Update-Verlauf in Java + Mysql-Projekt

+0

Speichern Sie einen neuen Datensatz bei Änderungen an bestehenden? – mady

+0

Ja. Eine neue Aufnahme für jede Änderung. –

+0

Dann können Sie eine Sache tun, Sie erstellen eine weitere Tabelle für product_fields_history (dasselbe wie product_fields). Wenn Sie zum ersten Mal in die product_fields-Tabelle einfügen, fügen Sie den gleichen Datensatz in product_fields_history ein und beim Aktualisieren von product_fields fügen Sie einen neuen Datensatz in product_fields_history ein. Die letzte Änderung wird in product_fields sein und der komplette Verlauf wird in product_fields_history sein. – mady

Antwort

1

Ich habe Hibernate Envers zum Überprüfen und Verfolgen des Revisionsverlaufs in meinen früheren Projekten verwendet.

Es ist einfach. Aktualisieren Sie den Überarbeitungsverlauf, indem Sie nur die Annotation @Audited in Ihrer Entitätsklasse hinzufügen und den Änderungsverlauf mit AuditReader abrufen.

Gehen Sie durch Hibernate Envers Docs für detaillierte Informationen.