Spring data-rest: Setze Nullwert durch PATCH-Anfrage

8

Ich möchte den Nullwert für die Entität festlegen, indem ich eine Nullanforderung sende.

Zum Beispiel:

%Vor%

Aber es funktioniert nicht.

Ich habe hier gefunden Informationen, wie PATCH-Anfragen verarbeitet werden:

  
  • Eine neue Instanz von Foo wird erstellt
  •   
  • Foo wird mit allen Werten gefüllt, die mit der Anfrage gesendet wurden
  •   
  • Die Foo-Entität mit der vom URI bereitgestellten ID wird geladen
  •   
  • Alle Eigenschaften, die sich zwischen den beiden Objekten unterscheiden, werden vom neuen Foo in den persistenten Foo kopiert, es sei denn, der Wert ist im neuen Foo null.
  •   

Verstehe ich richtig, dass es unmöglich ist, den Wert auf NULL mit der PATCH-Anforderung für die Dienst-API für den Frühling-Daten-Rest festzulegen?

    
Tarwirdur Turon 09.01.2015, 11:02
quelle

2 Antworten

4

Im Spring-Kontext bedeuten Nullwerte in der PATCH-Methode, dass keine Änderungen vorgenommen werden. Wenn Sie Nullwerte schreiben möchten, können Sie

1) verwende PUT-Methode;
2) implementieren Sie Ihre eigenen DomainObjectMerger Klasse, in der Sie die Methodenzusammenführung erweitern können Bedingung wie

%Vor%

3) Verwenden Sie DomainObjectMerger.NullHandlingPolicy Konfiguration.
Hängt von Ihrer Spring Data-REST-Version ab.

    
egorlitvinenko 13.05.2016, 09:50
quelle
1

Alle 3 Optionen von Ссылка lösen das beschriebene Problem, haben aber noch eines:

Alle anderen Eigenschaften, die nicht in PATCH request angegeben sind, wären auch nullified .

Scheint so ähnlich wie Ссылка bereits in v2.2.x behoben zu sein.

    
Dofs Serge 03.07.2016 15:51
quelle

Tags und Links