Bonjour à tous (et toutes),

J'ai une relation un à plusieurs ("source"-"évènements") qui utilise un id assigné pour les "évènements". Celui-ci est une java.util.Date.
Mais il pourrais arriver que pour une "source" différente j'ai des "évènements" qui se produisent au même moment.
Ma solution serais alors de créer un composite-id basé sur la java.util.Date et le "source.id" mais je n'ai pas besoin d'avoir une référence à la "source" dans mes "évènements".

--> Est-il possible d'inclure la clef étrangère d'une relation dans un composite-id ?


Mon mapping actuel :
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
<class name="me.test.Source" table="sources">
  <id name="id" column="id">
    <generator class="assigned" />
  </id>
 
  <set name="events" table="events" lazy="false" sort="natural" cascade="all">
    <key column="sourceId" />
    <one-to-many class="me.test.Source"/>
  </set>
</class>
 
<class name="me.test.Events" table="events">
  <name="date" column="date">
    <generator class="assigned" />
  </id>
 
   <property name="description" />
</class>
Merci.


Ps: une solution serait surement de rajouter la propriété "sourceId" dans "évènement" sans jamais l'utiliser. Avec peut-être des accesseurs protégés et dépréciés pour ne pas risquer d'embrouiller un développeur. Mais si il y à moyen d'éviter cette magouille, je préfère.