Bonjour,

Je ne suis pas un expert Hibernate. Je rencontre une erreur, et je pense que cela vient de ma configuration.

Pour simplifier, j'ai une table DE_GAR qui possède une clé étrangère vers DE_FORMUL, qui possède elle-même une clé composée.

Tout d'abord, je ne suis pas certain de la façon de déclarer une clé étrangère avec Hibernate. Voici mes fichiers de configuration :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<hibernate-mapping package="com.bouygtel.agilassur.db">
    <class name="DeFormul" table="DE_FORMUL">
        <meta attribute="sync-DAO">false</meta>
        <composite-id name="Id" class="DeFormulPK">
            <key-property name="Codfor" column="CODFOR" type="string"/>
            <key-property name="Datmdffor" column="DATMDFFOR" type="java.util.Date"/>
        </composite-id>
        [...]
    </class>
</hibernate-mapping>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<hibernate-mapping package="com.bouygtel.agilassur.db">
    <class name="DeGar" table="DE_GAR">
        [...]
        <many-to-one name="Id" class="DeFormul" not-null="true">
            <column name="Codfor" />
            <column name="Datmdffor" />
        </many-to-one>
    </class>
</hibernate-mapping>
Le problème est que j'obtiens ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
org.hibernate.MappingException: Foreign key (FK780221FA19A8C6C8:DE_GAR [CODFOR])) must have same number of columns as the referenced primary key (DE_FORMUL [CODFOR,DATMDFFOR])