Ich versuche, Spring Data JPA zu lernen, indem ich einige CRUD-Operationen über teste JpaRepository
.
Ich bin auf zwei Methoden gestoßen save
und saveAndFlush
. Ich verstehe den Unterschied zwischen diesen beiden nicht. Beim Aufruf werden save
auch meine Änderungen in der Datenbank gespeichert, also wozu dient saveAndFlush
.
Abhängig vom verwendeten Ruhezustand-Spülmodus (
AUTO
Standardeinstellung) werdensave
Ihre Änderungen möglicherweise sofort in die Datenbank geschrieben oder nicht. Wenn Sie anrufensaveAndFlush
, erzwingen Sie die Synchronisation Ihres Modellstatus mit der Datenbank.Wenn Sie den Flush-Modus AUTO verwenden und Ihre Anwendung verwenden, um die Daten zuerst zu speichern und dann erneut auszuwählen, sehen Sie keinen Unterschied im Verhalten zwischen
save()
und,saveAndFlush()
da die Auswahl zuerst einen Flush auslöst. Siehe die Dokumentation .quelle
save
eine Entität und wieder dieselbe bin , meinst du, mitsave
dem zweiten Befehl wird zum Beispiel keine Ausnahme für die Duplizierung ausgelöst?save
idempotent. Weitere Informationen finden Sie in diesem Thread .