IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

contraint violation exception


Sujet :

Hibernate Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut contraint violation exception
    Bonsoir,

    j'ai un petit souci avec hibernate.

    J'ai troistables

    SUIVI MESSAGE_IOP

    MESSAGE_IOP

    MESSAGE_IOP_ERREURS

    SUIVI_MESSAGE_IOP a une clé étrangère sur MESSAGE_IOP

    MESSAGE_IOP_ERREURS a une clé étrangère sur SUIVI_MESSAGE_IOP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
      SuiviMessage suiviMessage = new SuiviMessage();
      suiviMessage.setMinId(messageIOP);
      suiviMessage.setSuiMesStatut(statut);
      suiviMessage.setSuiMesDate(new Date());
      SuiviMessageFactory.getInstanceMessageFactory().save(pTc,suiviMessage);
    	//Parcours des erreurs
      Iterator itErreurs = erreurs.iterator();
      while (itErreurs.hasNext()) {
    	ErrorOrWarning codeErreur = (ErrorOrWarning) itErreurs.next();
    	String libelle = codeErreur.getLibelleRg();
    	MessageIOPErreurs messageIopErreur = 
    		new MessageIOPErreurs();
    	messageIopErreur.setMesErCode(codeErreur.getCode());
    	messageIopErreur.setMesErLibelle(libelle);
    	messageIopErreur.setMesSuiMsg(suiviMessage);
     		MessageIOPErreursFactory.getInstanceMessageIOPErreursFactory()
    				.save(pTc,messageIopErreur);
    }
    J'ai une exception qui me dit :

    Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (NAE3ADM.MSG_IOP_ERR_SUIVI_MSG_IOP_FK1) violated - parent key not found
    En gros j'essaie d'insérer dans messageIopErreur, l'objet suiviMessageIop, mais il me dit qu'il ne trouve pas sa clé.....

    Or à la fin de l'éxécution de l'application, dans la table SuiviMessage j'ai bien mon enregistrement.... alors que bien entendu dans la table messageioperreurs, j'ai rien.....

    Pour infos, il s'agit d'une application qui tourne depuis 2 ans en prod, le système hibernate tourne bien... j'ai inséré sans pb en utilisant le même principe dans d'autres tables.

    Là je vois pas trop où est le souci....

    En mode debug, à la fin de l'exécution du save de la factory de suiviMessage, il me génère bien un id technique.....
    donc j'ai bien une clé primaire pour le suivi message...

    mais pourquoi, message iop erreur ne la voit pas, là mystère :s !!!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    je m'apercois que ça a rien à avoir avec hibernate là !!!!!

    j'ai fait un test en sql simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    insert into suivi_message_iop (SUI_MES_ID,MIN_ID) values (S_SUIVI_MESSAGE.NEXTVAL,371);
     
    Je ne commite pas....
    j'insère désormais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into message_iop_erreurs(MES_ER_ID,MES_SUI_ID) values (S_MESSAGE_IOP_ERREURS.NEXTVAL,495)
    495 correspond à la valeur de la première insertion...

    Et il me sort la meme erreur alors que la donnée 495 existe bien.....

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    ahhhhhhhhhhhhhhhh

    2h de perdu !!!

    à cause de la foreign key qui est mal défini !! elle ne pointait pas sur la bonne colonne !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ACCESS VIOLATION EXCEPTION
    Par mouradev dans le forum Général Java
    Réponses: 4
    Dernier message: 11/05/2010, 19h17
  2. [ojdbc][jonas] Sealing violation exception
    Par -=Spoon=- dans le forum JDBC
    Réponses: 1
    Dernier message: 24/09/2009, 15h57
  3. Clé violation exception
    Par lenetfm dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/08/2008, 10h59
  4. Réponses: 2
    Dernier message: 13/02/2006, 11h13
  5. Réponses: 9
    Dernier message: 01/12/2005, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo