Hello,
J'utilise JBoss tools sur Eclipse pour générer mes classes / fichiers de mapping hibernate (3.6.0).
Pour gérer le many to many il crée un Set:
1 2 3 4 5 6 7 8 9
| <set name="monSet" table="TABLE1_TABLE2" inverse="false" lazy="true" fetch="select">
<key>
<column name="IDTABLE1" precision="7" scale="0" not-null="true" />
<column name="AUTREID" length="5" not-null="true" />
</key>
<many-to-many entity-name="com.xxx.TABLE2">
<column name="IDTABLE2" precision="7" scale="0" not-null="true" />
</many-to-many>
</set> |
Le souci est que dans ma TABLE2 mon ID est (aussi) composite: (IDTABLE2, AUTREID) donc j'obtiens l'erreur de type:
Foreign key must have same number of columns as the referenced primary key
Je rajoute donc mon AUTREID:
1 2 3 4 5 6 7 8 9 10
| <set name="monSet" table="TABLE1_TABLE2" inverse="false" lazy="true" fetch="select">
<key>
<column name="IDTABLE1" precision="7" scale="0" not-null="true" />
<column name="AUTREID" length="5" not-null="true" />
</key>
<many-to-many entity-name="com.xxx.TABLE2">
<column name="IDTABLE2" precision="7" scale="0" not-null="true" />
<column name="AUTREID" length="5" not-null="true" />
</many-to-many>
</set> |
Et le souci est que le nom est le même...
org.hibernate.MappingException: Repeated column in mapping for collection: com.xxx.TABLE1.monSet column: AUTREID
Alors je me sens un peu bloqué, n'est-ce pas gérable avec des noms de colonnes clés qui sont les mêmes dans les tables?
Car j'imagine que cela fonctionne nickel si mes couples étaient (IDTABLE1, AUTREID) et (IDTABLE2, AUTREIDBIS) mais pas de chance ça a été fait comme ça!
Si vous avez une solution à me proposer autre que de revoir la bdd j'en serais ravi.
Je pensais utiliser les annotations JPA mais d'abord je sais pas si je peux avoir le même problème et ensuite j'aimais bien cette automatisation 
Merci d'avance
Partager