Qu'est-ce exactement ne org.mise en veille prolongée.Session.save() faire?
Je sais que Session.save()
persiste à l'éphémère de l'objet. Et je vois qu'il a aussi saveOrUpdate()
, et aussi persist()
.
Je suppose alors que save()
est équivalent à SQL INCLUDE
, est-il?
Si j'ai un objet qui existe déjà sur DB et je save()
, sera d'une autre rangée être inclus, ses champs de mettre à jour, ou est-ce juste être ignorées, et rien ne se passe?
- Salut, avez-vous vérifié la veille prolongée docs: hibernate.org/docs Vous ne mentionnez pas la version que vous utilisez. Veuillez utiliser les blocs de code dans l'avenir. Merci
Vous devez vous connecter pour publier un commentaire.
Différence entre
save
etsaveOrUpdate
Principale différence entre
save
etsaveOrUpdate
méthode est quesave
génère un nouvel identifiant etINSERT
enregistrement dans la base de données tout ensaveOrUpdate
pouvezINSERT
ou la mise à JOUR basé sur l'existence de l'enregistrement. Doncsave
procédera sans effectuer existence de vérifier, sur l'autre mainsaveOrUpdate
permettra de vérifier l'existence, si l'enregistrement existe, il sera mis à jour un nouveau record sera inséré.Différences fondamentales entre
persist
etsave
1)une Première différence entre
save
etpersist
est leurreturn
type. Semblable àsave
méthode,persist
aussiINSERT
d'enregistrements dans la base de données, mais le type de retour depersist
estvoid
tandis que le type de retour desave
estSerializable object
.2) une Autre différence entre
persist
etsave
est que les deux méthodes, l'une instance éphémère persistante. Cependant,persist
méthode ne garantit pas que la valeur de l'identifiant sera affecté à l'instance persistante immédiatement, la cession peut se produire lors du flush.Je veux dire, Vous avez vraiment besoin de lire cette pour aller plus loin.
save() - If an INSERT has to be executed to get the identifier, then this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context.
Pouvez-vous s'il vous plaît dites-moi comment peut-on insérer arriver en dehors d'une session et pourquoi est-il mauvais ?Pour autant que je sais que ça se passe comme ceci:
save()
est tout simplement sauver votre entitépersist()
est la modification de votre instance de gestion de l'entité. cela signifie que si vous effectuez une opération sur elle et que la transaction est encore ouvert, alors il sera automatiquement sauvegardé lorsque vous appelezflush()
(si je ne me trompe pas)merge()
il y a aussi celui-ci qui est commepersist()
mais elle retourne une nouvelle instance et ne modifiez pas votre ancienne instance....saveOrUpdate()
vous pouvez voir iciméthode save() pour insérer l'enregistrement dans la base de données . mais saveorupdate() la méthode de vérification de la pk si pk est trouvé, alors c'est mettre à jour les données d'autre d'insérer les données dans la base de données .