it-swarm.com.de

Unterschied zwischen save und saveAndFlush in Spring data jpa

Ich versuche, Spring Data JPA zu lernen, indem ich eine CRUD-Operation über JpaRepository teste.

Ich bin auf zwei Methoden gestoßen: save und saveAndFlush. Ich verstehe den Unterschied zwischen diesen beiden nicht. Wenn ich save aufrufe, werden auch meine Änderungen in der Datenbank gespeichert. Wozu dient saveAndFlush?.

113
Anand

Je nachdem, welchen Ruhezustand Sie verwenden (AUTO ist die Standardeinstellung), schreibt save Ihre Änderungen möglicherweise sofort in die Datenbank. Wenn Sie saveAndFlush aufrufen, 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, werden Sie keinen Unterschied zwischen save() und saveAndFlush() feststellen, da die Auswahl ausgelöst wird ein Flush zuerst. Siehe die Dokumentation .

28
Ralf