7
votes

org.hibernate.exception.constraintViolationException: Impossible d'exécuter la mise à jour du lot JDBC

Je reçois ci-dessous la trace de pile mentionnée, bien que les données soient insérées avec succès. xxx

Veuillez noter:

a) mon dB n'a pas d'enregistrement actuellement b) Les données sont insérées dans dB avec succès.

Ici, j'essaie de persister un objet d'événement qui contient deux objets de participation. C'est tout.

ma classe de test: xxx

event.hbm.xml: xxx

hibernate.cfg.xml xxx


3 commentaires

Supprimez la dépendance à la participation et essayez à nouveau. ou double vérifier votre assistante.hbm.xml


Êtes-vous sûr que le code de test ne fonctionne que 1 fois? Vous pouvez mettre quelques journal de votre méthode principale pour vous assurer que c'est juste exécuté une itme.


BASHU, utilisez le lien "Modifier" pour ajouter ceci à la question. Il se trouve en bas à gauche du texte de votre question, juste en dessous du bouton de la balise Hibernate.


3 Réponses :


14
votes

Votre événement.hbm.xml dit:

<set name="attendees" cascade="all">
    <key column="attendeeId" />
    <one-to-many class="Attendee" />
</set>


3 commentaires

Ouais, c'est la question, vous devriez avoir une autre colonne de votre table des participants


Ouais ... merci mériton. Les problèmes sont résolus maintenant ... Je suis désolé que c'était un problème fondamental, j'aurais dû vérifier cela à fond.


Pourriez-vous également expliquer pourquoi les 2 premiers sélectionnements et 2 dernières mises à jour sont exécutées. Ne pouvons-nous pas éviter ces deux états de mise à jour?



2
votes

Vous pouvez trouver votre exemple de code complètement ici: http://www.java2s.com/code/java/hibernate/onetomanyMappingBasedonset. HTM

Regardez et vérifiez les différences. spécialement le même_id dans: xxx


0 commentaires

-4
votes

Vous devrez peut-être gérer Javax.Persistence.rollbackeXception


0 commentaires