Maison > Java > javaDidacticiel > 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 ?

Barbara Streisand
Libérer: 2024-12-18 01:36:13
original
786 Les gens l'ont consulté

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
Copier après la connexion

Comprendre l'erreur

Cette erreur indique que vous disposez d'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 :

<collection name="collectionName" cascade="all">
    ...
</collection>
Copier après la connexion

Annotations :

@OneToMany(cascade = CascadeType.ALL)
private List<ChildEntity> collectionName;
Copier après la connexion

Explication

En précisant le cascade="all" ou CascadeType.ALL, vous demandez à Hibernate de sauvegarder toutes les entités de la collection dans la base de données lors de la sauvegarde 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal