La raison pour laquelle Hibernate fournit une méthode persist () qui est presque exactement similaire à la fonction Save () est de prendre soin des habitudes d'utilisation de JPA. D'un autre côté, il existe une autre différence entre les méthodes Save () et persist (): Lors de l'utilisation de la méthode Save () pour enregistrer un objet persistant, la méthode renvoie la valeur d'attribut d'identifiant de l'objet persistant (c'est-à-dire la valeur de clé primaire correspondant à l'enregistrement); Mais lors de l'utilisation de la méthode persist () pour enregistrer un objet persistant, la méthode n'a aucune valeur de retour. Étant donné que la méthode Save () doit renvoyer immédiatement l'attribut d'identité de l'objet persistant, l'exécution du programme Save () insérera immédiatement les données correspondant à l'objet persistant dans la base de données; Bien que persistant () garantit que lorsqu'elle est appelée en dehors d'une chose, elle n'est pas immédiatement convertie en une déclaration d'insertion. Cette fonction est très utile, surtout lorsque nous encapsulons un processus de session long, la méthode persist () est particulièrement importante.
Une distinction claire est donnée ici. (Vous pouvez suivre SRC à voir. Bien que les étapes de mise en œuvre soient similaires, il existe encore des différences subtiles)
Principales différences de contenu:
1. Persiste persiste une instance transitoire, mais ne garantit pas que l'identifiant (l'attribut correspondant à la clé primaire de l'identifiant) sera immédiatement rempli dans l'instance persistante, et le remplissage de l'identifiant peut être retardé jusqu'à la lutte.
2. Enregistrer, persiste un identifiant pour une instance transitoire et le génère dans le temps. Il doit renvoyer l'identifiant, il exécutera donc immédiatement l'insert SQL
Explications des autres internautes:
Méthode de sauvegarde
Lors de l'enregistrement d'un objet persistant, cette méthode renvoie la valeur d'attribut d'identifiant (c'est-à-dire la clé primaire) de l'objet persistant.
Cette méthode insérera immédiatement les données correspondantes de l'objet persistant dans la base de données.
méthode persiste
Cette méthode ne renvoie aucune valeur.
Assurez-vous que lorsqu'il est appelé en dehors d'une transaction, il n'est pas immédiatement converti en une instruction INSERT.
Convient pour les flux de session à long terme.