So aktualisieren Sie nur geänderte Attribute - Spring MVC

9

Mein Controller

%Vor%

Der Tag

%Vor%

Diese Methode funktioniert, aber es ist ziemlich hässlich für mich. Angenommen, der Benutzer hat gerade das Vornamenfeld in der Ansicht geändert. Wie kann ich meinen Code so anpassen, dass er nur die Funktion zum Vornamen aufruft?

Etwas wie das Observer-Muster, um das Feld zu benachrichtigen, das eine Änderung hat?

    
melkir 12.02.2016, 07:44
quelle

3 Antworten

3

Ich nehme an, dass Ihr Code so funktioniert:

Ein Benutzer möchte einige Daten seines user entity ändern. Im Frontend zeigt man ihm bereits alle Einträge aus der Benutzertabelle der DB wie Vorname, Nachname usw. an.

Zum Beispiel hat der Benutzer seinen Vornamen geändert und die Speichern-Taste gedrückt. Ihr Controller erhält die Benutzerentität einschließlich der Benutzer-ID, des neuen Vornamens und aller alten festgelegten Werte . Wenn Ihr Code so funktioniert, können Sie einfach save() der Benutzereinheit eingeben. Sie müssen den Benutzer nicht zuerst aus der Datenbank holen.

Mach es einfach so:

%Vor%

Das Repository kennt die ID der Benutzereinheit und aktualisiert nur die vollständige Entität.

Und aus dem Grund, dass Sie nicht die ID in Ihrer Benutzereinheit verwenden, verwenden Sie die ID von Ihrem Controller wie folgt:

%Vor%     
Patrick 12.02.2016, 08:27
quelle
1

Wenn Sie Hibernate verwenden, gibt es ein Attribut im Ruhezustand dynamicUpdate = true , das nur aktualisierte Felder in db

aktualisiert

wie unter Code

%Vor%

für hibenrate 4 + verwenden Sie diese

%Vor%     
Musaddique 12.02.2016 07:51
quelle
-1

Angenommen, dies ist Ihr Benutzer.

%Vor%

Dann können Sie in Ihrer jsp-Seite etwas wie unten tun.

%Vor%

Und wieder in deinem dao kannst du den Null-Check setzen

%Vor%

Bitte beachten Sie, dass dieser Code nicht getestet wurde und auf Downvotes wartet.

    
Obi Wan - PallavJha 12.02.2016 08:54
quelle