Carte une clé composite à l'intérieur d'une clé composite hibernate, xml
C'est ce que je voudrais faire, la carte un objet à une autre table qui a les mêmes clés primaires. Ci-dessous est un exemple, fondamentalement, je n'ai qu'un seul objet avec une clé composite qui a une clé composite pour une AUTRE table, mais je ne sais pas comment inclure les deux dans le but de créer l'objet propre clé. J'ai mis en évidence la ligne qui est mal, elle ne comprend que l'une des propriétés de la clé.
<class name="BusinessRuleObject" table="BUSINESS_RULE_OBJECTS" schema="DB">
<composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
<key-property name="sameIdCode" column="ID_CD" />
**<key-many-to-one name="businessRule" class="BusinessRule" column="BUSINESS_RULE" />**
</composite-id>
<!-- ... STUFF GOES HERE -->
</class>
<class name="BusinessRule" table="BUSINESS_RULE_STRINGS" schema="DB">
<composite-id name="businessRule2ID" class="BusinessRule2ID">
<key-property name="sameIdCode" column="ID_CD" />
<key-property name="businessRuleCode" column="BUSINESS_RULE" />
</composite-id>
<!-- TOTALLY DIFFERENT STUFF GOES HERE -->
</class>
- est-il maître/détail de la relation entre les deux ?
- Non, pour toutes fins utiles, ils pourraient être de la même table, à l'exception de la non-primarykey de données.
Vous devez vous connecter pour publier un commentaire.
Seulement l'une des propriétés du composite de clé étrangère
businessRule
est inclus, parce que le<key-many-to-one
seulement déclarer une colonneBUSINESS_RULE
. Il doit déclarer les deux colonnes de la clé composite, il est de référencementBUSINESS_RULE
etID_CD
dans votre exemple. En ajoutant leID_CD
colonne à la<key-many-to-one
élément que vous avez besoin de supprimer ou de renommer la colonne de<key-property name="sameIdCode" column="ID_CD" />
élément.L'association
<key-many-to-one
àbusinessRule
objet doit être mappé comme ceci: