2009-12-24 4 views
1

A 1 * --- * --- 1 A_B BComment mapper ce tableau de liens dans cf-orm?

Tableau A a l'aide (PK), le tableau B a bid (PK), tableau A_B a:

aide (PK, FK) , Bid (PK, FK), num

J'ai essayé

property name="A" fieldtype="many-to-one" cfc="A" fkcolumn="aID"; 
property name="B" fieldtype="many-to-one" cfc="B" fkcolumn="bID"; 
property name="num" type="numeric"; 

mais CF me demandent une colonne d'identité ... que puis-je faire? Les FK devraient être les PK.

S'il n'y a aucun moyen de le spécifier dans CFC, comment représenter ce tableau de lien dans HBM xml?

Thx

Répondre

3

Apparemment, aucun hbmxml n'est nécessaire! Impressionnant ...

property name="A" fieldtype="id,many-to-one" cfc="A" fkcolumn="aID"; 
property name="B" fieldtype="id,many-to-one" cfc="B" fkcolumn="bID"; 
property name="num" type="numeric"; 

Merci à la réponse de Brian Kotek à: http://groups.google.com/group/cf-orm-dev/msg/a6ccc2194fceb930

0

Je remarqué la fkcolumn pour property = "B" devrait être "Bid".

property name="Bs" fieldtype="one-to-many" cfc="B" fkcolumn="bID"; 

L'autre chose que j'ai remarqué à partir de votre schéma est je crois que la table de lien a vraiment beaucoup à un car il y a beaucoup d'articles dans la table de liens qui pointent vers un élément dans la Une table de table et B . Essayez de passer à un "plusieurs-à-un" et voir si cela aide.

+0

thx, mis à jour, mais le problème est .. la propriété ID est nécessaire, mais ne peut pas définir depuis FieldType ne peut pas être " id "et" many-to-one " – Henry

1

Pouvez-vous modifier la table afin qu'il a un unique, généré automatiquement id? Les clés primaires doivent être uniques et ne jamais changer. (une partie d'une clé de mappage de lien peut techniquement changer) Il est également préférable d'avoir une clé de substitution à la place des clés composées puisque vous pouvez identifier un enregistrement par une clé primaire au lieu de colonnes composites.

J'utilise Hibernate et toutes mes tables de liens ont leurs propres clés primaires de substitution. Sinon, vous devrez faire face à la composite id mapping declaration.

+0

Je pense que l'ID composite ne fonctionnerait pas puisque les ID dans mon cas sont des FK dans une relation plusieurs-à-un, n'est-ce pas? – Henry

+0

Oui, je peux utiliser un ID supplémentaire, mais je préfère ID composite, thx – Henry

+0

ID composite fonctionnerait. Peu importe si ce sont des FK. Mais s'appuyer sur des touches composées rend les choses plus difficiles comme dans ce cas. –