Bonjour tout le monde,
J'ai fait un mapping de ma BD avec un plugin (MyEclipse) et J'ai un probleme avec le mapping d'une clé étranger entre deux table.
Une table X avec une clé primaire XID sachant que XID est une classe généré avec mon plugin et qui contient toutes les colonnes de la table X.
et une table Y qui référence à la clé primaire de la table X comme clé étranger.
quand j'exécute mon exemple j'obtient l'exception suivante :
Le probleme à mon avis est dans le code suivant du fichier hbm de la table Y :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Caused by: org.hibernate.MappingException: Foreign key (FKB8DCB6CF723F2E2:idconv [GBAGCDAG])) must have same number of columns as the referenced primary key (gb2agen [GBAGCDAG,GBAGSOAG,GBAGEFPA,GBAGAFFS,GBAGCDAL,GBAGACSA,GBAGNUPR,GBAGDTPR,GBAGSOES,NUMIDE,GBAGDTIN,GBAGDTFI,GBAGCDRA]) at org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:90) at org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:73) at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1145) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1052) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168) at com.cpa.spi.dao.persona.HibernateUtil.<clinit>(HibernateUtil.java:20) ... 4 more
je croix que ce code fait référence à une clé primaire comme etant une colonne alors qu'elle dois se faire à la classe XID.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <many-to-one name="gb2agenByGbagcdag" class="AgentPolicia" fetch="select"> <column name="GBAGCDAG" length="6" /> </many-to-one>
Est ce que j'ai raison dans ce que j'ai dis ? et si oui comment je peut corriger ce probleme.
Merci d'avance.
Partager