Ignoriere Nullwerte beim Aktualisieren der Datenbank in Hibernate

9

Festgefahren wegen des gleichen Problems Gibt es irgendeine Methode, null -Werte zu ignorieren? beim Aktualisieren der Datenbank in Hibernate ?

Wann immer Sie update () aufrufen; von Session aktualisiert es außerdem die Nullwerte, die in dem Objekt gefunden werden.

Beispiel:

%Vor%

ODER

%Vor%

Die Datenbank aktualisiert nun den Benutzer, setzt aber den Vornamen des Benutzers auf null (weil es im Objekt null ist).

Gibt es einen Weg oder eine Methode in Hibernate, um dies zu vermeiden (ich möchte keine Auswahl- / Aktualisierungsabfrage auslösen, um die Bean zu setzen)? dass es den Nullwert ignoriert?

    
Vishrant 25.04.2014, 06:18
quelle

2 Antworten

3

Hibernate-dynamic-update

  

Das dynamische Aktualisierungsattribut teilt Hibernate mit, ob unmodifizierte Eigenschaften in die SQL UPDATE-Anweisung aufgenommen werden sollen.

    
Gundamaiah 25.04.2014 07:02
quelle
0

Es hängt von der Abstraktionsebene ab, die Sie steuern möchten, und den Geschäftsregeln des Objekts:

  • Ist das Feld wirklich schreibgeschützt, oder verwenden Sie es einfach als DTO? Vielleicht brauchen Sie ein Zwischenobjekt, um Nullwerte zu steuern
  • Was passiert mit neuen Benutzern (wie im Beispiel)? Ich sollte den Nullwert ignorieren, dann welchen Wert sollte beibehalten werden, der Standardwert?

Wenn Sie Ihre Anforderungen auf einer niedrigeren Ebene definieren, z. "NULL-Werte in Aktualisierungsabfragen dürfen nicht enthalten sein", können Sie Folgendes verwenden:

  • sql-update Annotation hier . Sie können eine benutzerdefinierte SQL-Abfrage oder Prozedur zur Steuerung von Werten verwenden
  • dynamicUpdate bezieht sich auf Änderungen, nicht auf Werte, daher finde ich es nicht wirklich geeignet
  • Verwenden Sie einen EntityListener und ein vorübergehendes Hilfsfeld, das wiederhergestellt werden soll Änderungen, falls gewünscht.
  • Andere Optionen: Verwenden Sie einen Abfangjäger oder erstellen Sie sogar ein < a href="https://community.jboss.org/thread/195653?tstart=0"> angepasster Dialekt
jantonio.aguilera 25.04.2014 08:22
quelle

Tags und Links