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
-2
A
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.
Speichern Sie einen neuen Datensatz bei Änderungen an bestehenden? – mady
Ja. Eine neue Aufnahme für jede Änderung. –
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