2016-11-19 3 views
0

Ich bin neu im Winterschlaf.Startete gestern selbst zu erkunden. Ich bin fest und frage mich, ob dies mit Hibernate getan werden könnte oder nicht.Aktualisiert mehrere Tabellen im Ruhezustand und gewährleisten die Datenkonsistenz

Lets sagen, dass ich drei Tabellen Tabelle A, Tabelle B (id, Budget, bot) und Tabelle C (id, Status) (die Spalten Namen, Budget, Gebot, Status, Datum hat) . Ich möchte, dass alle Daten konsistent sind, d. H. Wann immer die Aktualisierung in Tabelle B geschieht (sagen wir mal für Budget, der neue Wert sollte in Tabelle A widergespiegelt werden). Gleiches gilt auch, wenn das Update auch in Tabelle C geschieht. Was ist der beste Weg, dies im Winterschlaf zu erreichen?

+0

Warum Ihre Tabellen werden nicht normalisiert widerspiegeln? Warum haben Sie dieselben Daten in mehreren Tabellen? – developer

+0

Versuchen Sie, die Tabellen zu normalisieren und es wird sich darum kümmern. Die Duplizierung von Daten könnte eine große Belastung darstellen. –

+0

Das ist die Voraussetzung. Wir wollen die Änderung von Status, Budget, Gebot in separater Tabelle verfolgen – user3681970

Antwort

0

Erstens, ich empfehle nicht Datenduplizierung über mehrere Tabellen, die sehr schwer zu unterstützen und zu pflegen ist.

Aber wie Sie besagt, dass es Ihre wichtigste Voraussetzung ist, müssen Sie JPA Entity Listener verwenden (funktioniert mit Hibernate und über alle ORM-Frameworks)postUpdate() und postInsert() so, dass, wenn es ein Update/Insert auf die Tabelle B, dann erstellen & persist noch ein Objekt (Zeile in der Datenbank) in Tabelle A.

Unten ist der Punkt aus JPA-Spezifikation genommen. für Ihre Referenz.

Der PostUpdate-Rückruf erfolgt nach den Datenbankaktualisierungsoperationen an Entitätsdaten.

Sie können ein einfaches Beispiel finden here

-1

Sie Trigger durch Brennen Ereignis für das Einfügen von Daten in Tabelle B verwendet werden soll, die Daten in der Tabelle Tabelle A

+0

Benutzer haben gefragt, wie man es mit Hibernate macht, außerdem sollte ein schlechtes DB-Design nicht durch die Bereitstellung von Patches wie Lösungen gefördert werden. – Ubercool

Verwandte Themen