Bonjour

C'est sujet plutôt récurrent mais je ne trouve pas la solution qui me convient.
Hibernate.org est indisponible ce qui n'arrange pas mes affaires

J'ai deux tables: client et catégorie

table client:
societe_id, client_id, categorie_id, nom, prenom ...
Ma clé primaire étant: societe_id, client_id

table catégorie:
societe_id, categorie_id, libelle ...
Ma clé primaire étant: societe_id, categorie_id

Le fichier de mapping:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<class name="data.adresse.marketing.Adrmkt_client" table="Adrmkt_client">
        <composite-id name="id" class="data.adresse.marketing.Adrmkt_clientId">
            <key-property name="societe_id" type="string">
                <column name="societe_id" length="1" />
            </key-property>
            <key-property name="client_id" type="string">
                <column name="client_id" length="3" />
            </key-property>
        </composite-id>
        <property name="categorie_id" type="string">
            <column name="categorie_id" length="7" not-null="true" />
        </property>
        <property name="nom" type="string">
            <column name="nom" length="30" not-null="true" />
        </property>
 
    </class>
 
<class name="data.adresse.marketing.Adrmkt_categ" table="Adrmkt_categ">
        <composite-id name="id" class="data.adresse.marketing.Adrmkt_categId">
            <key-property name="societe_id" type="string">
                <column name="societe_id" length="1" />
            </key-property>
            <key-property name="categorie_id" type="string">
                <column name="categorie_id" length="3" />
            </key-property>
        </composite-id>
        <property name="abrevCategorie" type="string">
            <column name="AbrevCategorie" length="7" not-null="true" />
        </property>
        <property name="intituleCategorie" type="string">
            <column name="IntituleCategorie" length="30" not-null="true" />
        </property>
 
    </class>
Pour l'association j'ai essayer le code suivant mais ca ne me fait pas exactement ce que je veux ca cela duplique les societe_id

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<many-to-one name="categorie" class="data.adresse.marketing.Adrmkt_categ">
			    <column name="societe_id2"/>
			    <column name="categorie_id2"/>
</many-to-one>
En résumé comment utiliser un champ dans une clé primaire ET dans une association ?

Merci

ps: le fait d'avoir des id composite dans les deux tables sont obligatoire, même si l'intérêt se saute pas aux yeux sur cet exemple.