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.
J'ai une exception qui me dit :
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); }
En gros j'essaie d'insérer dans messageIopErreur, l'objet suiviMessageIop, mais il me dit qu'il ne trouve pas sa clé.....Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (NAE3ADM.MSG_IOP_ERR_SUIVI_MSG_IOP_FK1) violated - parent key not found
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 !!!
Partager