"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre l'erreur « Instance transitoire non enregistrée de références d'objet » d'Hibernate ?

Comment résoudre l'erreur « Instance transitoire non enregistrée de références d'objet » d'Hibernate ?

Publié le 2024-12-23
Parcourir:147

How to Resolve Hibernate's

Résolution de l'erreur « Instance transitoire non enregistrée de références d'objet » d'Hibernate

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 List collectionName;

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.

Dernier tutoriel Plus>

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