org.mise en veille prolongée.ObjectDeletedException: objet supprimé serait ré-enregistré en cascade (suppression de l'objet supprimé à partir d'associations):
j'obtiens l'erreur ci-dessus "org.mise en veille prolongée.ObjectDeletedException: objet supprimé serait ré-enregistré en cascade (suppression de l'objet supprimé à partir d'associations): ". quelqu'un pourrait-il m'aider à ce qui pourrait être le problème et ce qui devrait être la solution?
Grâce.
OriginalL'auteur user2323036 | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Sans mappage de code de fin est un peu dur...
Cela est dû, en général, parce que vous êtes la suppression d'un objet associé à une collection.
Vous devez supprimer l'objet de la possession de la collection(s) et, après, supprimer l'objet
Mais vous pouvez éviter cela en utilisant deleteOrphan mappés de la collection de cette manière
et à quoi ressemble le code
Vous n'avez pas plus besoin de l'objet de la suppression, car il est automatiquement supprimé par Hibernate lors de l'enregistrement de parentObject.
L'espoir peut aider à
OriginalL'auteur Luca Basso Ricci
Vous avez supprimé une entité (Un) dans la session, mais il est référencé par une autre entité et enrichies avec une Cascade d'annotation. Cette référence serait la cause de l'entité (a), Un reacreated immédiatement. Car ce n'est probablement pas ce que vous souhaitiez, hibernate se plaint.
La solution est de trouver toutes les références (y compris les collections), par l'intermédiaire de laquelle l'entité est accessible et les mettre à la
null
/suppression de l'entité de la collection.Vous pouvez transformer votre supprimer de la logique: faire de la référence (si il y a un seul) a supprimer les orphelins et simplement le supprimer il y a que @bellabax décrit.
OriginalL'auteur Jens Schauder
Cette exception indique que l'Objet que vous souhaitez supprimer est aussi associés à la collecte de toute entité, et votre cascade que l'id de la collection. Donc, si vous souhaitez supprimer toute façon, vous pouvez changer votre cascade de
OriginalL'auteur Ankit Katiyar
Si vous le faites via XML (et pas les annotations), ci-dessous est une solution qui a fonctionné pour moi:
Un-à-Plusieurs Associations:
objet parent [NOTE: Si vous faites Une à Une association, à seulement
la valeur de l'enfant objet de référence dans l'objet parent à "null"]
ATTENTION: la session.flush() est importante, comme les Hibernate a besoin de voir les changements,
Si vous ne peut pas vider la session, je vous conseille de faire les étapes (1,2) dans une autre transaction, puis suivez les étapes (4,5,6) dans une nouvelle transaction.
OriginalL'auteur Navin Israni