Je tente d'insérer un nouvel enregistrement dans une table que je connais est unique avant la main. J'ai essayé d'appeler Save () sur l'objet, mais cela fait un tas de déclarations de sélection avant de faire des insertions, que je ne veux pas faire parce que je sais que l'objet est déjà unique. P>
J'ouvre une nouvelle session pour chaque transaction, que je peux voir être un problème, mais c'est une contrainte de mon domaine. Y a-t-il un moyen de forcer l'hibernation à ne pas faire de sélection avant d'insertion? p>
3 Réponses :
Hibernate tente de déterminer si l'objet est transitoire ou non, de manière à effectuer un ou, je me souviens d'un post dans un forum sur le remplacement de la colonne code> de la version code> qui hibernate utilise dans la chèque transitoire (et pour un verrouillage optimiste). Je vais éditer cette réponse quand je le trouve. P> sélectionner code> avant
insérer code>. Vous pourrez peut-être adapter cette réponse de Hibernate OneToOne Cartographie exécute une instruction Select avant l'insertion; Je ne sais pas pourquoi pour éviter le
Sélectionnez CODE>. P>
Vous pouvez utiliser la méthode persist () plutôt que d'enregistrer (). p>
https://forum.hibernate.org/viewtopic.php?f = 1 & T = 1011405 p>
Cependant, Contrairement à Save (), persist () ne garantit pas que la valeur d'identification sera définie immédiatement sur l'instance persistante. P>
https://forum.hibernate.org/viewtopic.php?f = 1 & T = 951275 p>
(et vous pouvez sauter au dernier message de Christian dans le fil) P>
hibernate ne délivre pas de sélectionner pour voir si un objet est unique sur un et voir quelles déclarations qui produisent. P> p> Enregistrer () code>. En fait, Hibernate n'exerce même pas d'insertion lorsque vous appelez
Enregistrer () code>. Cela se produit lorsque vous
Flush () CODE> Ou engagez la transaction. Vous devrez déterminer exactement ce que les SELECT sont pour et ce qui les initie. Pour vous aider à la réduire, vous pouvez écrire un test rapide comme
Quelles déclarations sélectionnées génère-t-elle?
Il génère une sélection pour chaque objet de mon domaine, que je ne veux pas faire parce que je sais déjà que mes objets sont complètement nouveaux et uniques.