[Mapping][set][composite-id] Utiliser la clef étrangère dans le composite-id
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:
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.