如何在cf-orm中映射此链接表?

时间:2009-12-24 03:14:30

标签: hibernate orm coldfusion hbmxml

A 1 --- * A_B * --- 1 B

表A有aID(PK),表B有bID(PK), 表A_B有:

aID(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

4 个答案:

答案 0 :(得分:3)

显然不需要hbmxml!真棒...

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

感谢Brian Kotek在http://groups.google.com/group/cf-orm-dev/msg/a6ccc2194fceb930

的回答

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我注意到property =“Bs”的fkcolumn应为“bID”。

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

我从模式中注意到的另一件事是我相信链接表确实有多对一,因为链接表中有许多项链接到A表和B表中的一个项目。尝试切换到“多对一”,看看是否有帮助。

答案 3 :(得分:0)