Erreur Hibernate : exception d'objet non unique
Lorsque vous essayez d'enregistrer des objets à l'aide d'Hibernate, vous pouvez rencontrer l'exception "org.hibernate.NonUniqueObjectException ," indiquant qu'un objet avec le même identifiant est déjà associé à la session.
Cette erreur survient lorsque vous en avez deux objets distincts avec la même clé primaire. Hibernate identifie les objets en utilisant leurs valeurs de clé primaire, et si deux objets partagent la même clé, Hibernate suppose qu'il s'agit du même objet. Cependant, dans ce cas, ce sont des entités distinctes.
Le message d'erreur apparaît souvent lorsqu'il y a une sauvegarde en cascade entre deux objets, et que l'un d'eux (Objet B) est déjà associé à la session mais pas sur le même. instance comme celle de l'objet A.
Causes potentielles :
Une cause possible est l'utilisation d'une base de données générée générateur de clé primaire. Dans ce scénario, si un objet est supprimé de la base de données puis recréé avec la même clé primaire, il entrera en conflit avec l'objet existant dans le contexte persistant lors de l'enregistrement.
Une autre cause potentielle est si vous avez mis à jour ou valeurs supprimées dans une table référencée par d'autres objets. Lors de la tentative de réinsertion de ces objets, les objets existants lèveront une exception.
Suggestions de résolution :
Pour résoudre cette 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!