2009-12-24 27 views
1

A 1个--- * * A_B --- 1乙如何在cf-orm中映射此链接表?

表A具有AID(PK),表B具有BID(PK), 表A_B具有:

助剂(PK,FK) , BID(PK,FK), NUM

我试图

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"; 

但CF一直问我要一个ID列......我该怎么办? FK应该是PK的。

如果无法在CFC中指定它,如何在hbm xml中表示此链接表?

THX

回答

0

我注意到fkcolumn财产= “BS” 应该是 “投标”。

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

我从您的架构注意到的另一件事是,我相信链接表真的有许多对一个因为有在链接表中的许多项目,其链接到一个项目中的表和B表。尝试切换到“多对一”,看看是否有帮助。

+0

THX,更新,但问题是..需要ID属性,但不能定义它,因为字段类型不能为“ ID“和”多对一“ – Henry 2009-12-26 19:45:37

1

你可以改变表,使其具有独特的,自动生成的ID?主键应该是唯一的,永远不会改变。 (链接映射键的一部分在技术上可能会改变)。最好还是使用代理键而不是组合键,因为您可以通过主键而不是组合键来唯一标识记录。

我使用Hibernate,我所有的链接表都有自己的代理主键。否则,你将不得不处理composite id mapping declaration

+0

我认为复合ID不会工作,因为在我的情况下ID是FK的多对一的关系,对吧? – Henry 2009-12-28 22:17:03

+0

是的,我可以使用额外的ID,但我更喜欢复合ID,thx – Henry 2009-12-28 22:19:13

+0

复合ID将起作用。它们是否是FK并不重要。但是依靠复合键使事情变得更加困难,就像在这种情况下一样。 – 2009-12-28 22:42:22