2016-04-20 14 views
1

Ich habe eine Tabelle mit der folgenden Struktur -Hibernate Cascading innerhalb derselben Tabelle

SampleTable (
      id pk, 
      first_name, 
      last_name, 
      common_message1, 
      common_message2 
      ) 

Die Datensätze werden in dieser Tabelle in Batch eingefügt werden und unterschiedliche ID haben, vornamen, nachnamen aber gleiche common_message1 und common_message2.

Die Datensätze werden wie:

| 1 | Test1 | last1 | this is same message1 | this is same message2 |   
| 2 | Test2 | last2 | this is same message1 | this is same message2 | 
| 3 | Test3 | last3 | this is same message1 | this is same message2 | 
| 4 | Test4 | last4 | this is same message3 | this is same message4 | 
| 5 | Test5 | last5 | this is same message3 | this is same message4 |  

Hinweis - ich den Tisch

in meinem Projekt aufgrund einiger Design-Einschränkung nicht normalisieren kann

Wie soll ich das doppelte Einträge in der Tabelle behandeln, Soll ich sie wie oben gezeigt mehrmals speichern, wenn ja, wie füge ich sie ein oder aktualisiere sie, um sicherzustellen, dass alle gleich sind und korrekt aktualisiert werden. Oder gibt es eine andere effiziente Möglichkeit, mit einem solchen Szenario umzugehen?

Vielen Dank im Voraus

Antwort

0

Durch aktualisiert, ich nehme an, Sie meinen Sie Updates für die „Common-Meldung“ s machen wollen.

I.e. Wenn Sie die Kommentare in einer Zeile ändern, möchten Sie, dass sie in allen Zeilen mit übereinstimmenden Kommentaren geändert wird.

Ihre einzige echte Option besteht darin, alle Zeilen mit einer WHERE-Klausel auf common_message1 und common_message2 abzurufen und diese Felder dann für die gesamte Sammlung zu aktualisieren.

Wenn Sie sich nicht mit den Nachrichten befassen, möchten Sie sie offensichtlich als einzelne Entitäten behandeln.

I.e. Wenn Sie die first_name oder last_name

ändern