Lorsque vous essayez d'enregistrer un objet à l'aide d'Hibernate, vous pouvez rencontrer l'erreur suivante :
object references an unsaved transient instance - save the transient instance before flushing
Comprendre le Erreur
Cette erreur indique que vous avez une collection dans votre entité qui contient un ou plusieurs éléments qui ne sont pas présents dans la base de données. Hibernate nécessite que toutes les entités référencées par d'autres entités soient soit enregistrées (persistées) dans la base de données, soit marquées comme transitoires.
Résolution
La solution à cette erreur consiste à spécifier l’option cascade pour la cartographie de votre collection. Vous pouvez le faire en utilisant XML ou des annotations :
XML:
...
Annotations :
@OneToMany(cascade = CascadeType.ALL) private ListcollectionName;
Explication
En spécifiant l'option cascade="all" ou CascadeType.ALL, vous demandez à Hibernate de sauvegarder toutes les entités de la collection à la base de données lors de l'enregistrement de l'entité parent. Cela garantit que toutes les entités référencées sont conservées dans la base de données et résout l'erreur.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3