Der Grund, warum Hibernate eine persist () -Methode liefert, die der Funktion Save () fast genau ähnlich ist, besteht darin, sich um die JPA -Nutzungsgewohnheiten zu kümmern. Andererseits gibt es einen weiteren Unterschied zwischen Save () und Persist () -Methoden: Wenn Sie die Save () -Methode verwenden, um ein persistierendes Objekt zu speichern, gibt die Methode den Identifikator -Attributwert des persistierenden Objekts zurück (dh den dem Datensatz entsprechenden primären Schlüsselwert). Bei Verwendung der Persist () -Methode zum Speichern eines anhaltenden Objekts hat die Methode jedoch keinen Rückgabewert. Da die Methode Save () das Identitätsattribut des persistenten Objekts sofort zurückgeben muss, fügt die Programmausführung Save () die Daten, die dem persistierenden Objekt entsprechend entsprechen, sofort in die Datenbank ein. Persist () stellt sicher, dass es nicht sofort in eine Einfügungsanweisung umgewandelt wird, wenn es außerhalb eines Ding genannt wird. Diese Funktion ist sehr nützlich, insbesondere wenn wir einen langen Sitzungsprozess zusammenfassen, ist die Persist () -Methode besonders wichtig.
Hier wird eine klare Unterscheidung angegeben. (Sie können SRC befolgen, um zu sehen. Obwohl die Implementierungsschritte ähnlich sind, gibt es immer noch subtile Unterschiede.)
Hauptinhaltsunterschiede:
1. Bestehen Sie eine vorübergehende Instanz, garantiert jedoch nicht, dass die Kennung (das Attribut, das dem Identifikator -Primärschlüssel entspricht) sofort in der persistenten Instanz ausgefüllt wird, und die Ausfüllung der Kennung kann bis zum Spülen verzögert werden.
2. Speichern, behält eine Kennung für eine vorübergehende Instanz bei und generiert sie rechtzeitig. Es muss die Kennung zurücksenden
Erklärungen anderer Internetnutzer:
Methode speichern
Beim Speichern eines anhaltenden Objekts gibt diese Methode den Identifikator -Attributwert (d. H. Der Primärschlüssel) des anhaltenden Objekts zurück.
Diese Methode fügt die entsprechenden Daten des persistenten Objekts sofort in die Datenbank ein.
beständige Methode
Diese Methode gibt keinen Wert zurück.
Stellen Sie sicher, dass es nicht sofort in eine Insert -Anweisung umgewandelt wird, wenn es außerhalb einer Transaktion aufgerufen wird.
Geeignet für lange Sitzungsströme.