我的数据库结构主要由每个表的多个主键组成,因此每个连接需要多个列。我正在尝试使用具有链接表的ColdFusion(11具体)ORM关系属性。我认为问题在于多对多关系的一方面有两个键,另一方面只有一个。这是我尝试过没有成功的事情:
表格设置
Staff StaffSites Sites
============ ============ ===========
YearID (PK) --- YearID (PK)
StaffID (PK) --- StaffID (PK) SiteName
StaffName SiteID (PK) --- SiteID (PK)
员工ORM CFC
component persistent=true table='Staff' {
property name='id' column='StaffID' fieldType='id';
property name='year' column='YearID' fieldType='id';
property name='name' column='StaffName';
property name='sites'
cfc='site'
linkTable='StaffSites'
fkColumn='YearID,StaffID'
inverseJoinColumn='SiteID'
mappedBy='id'
fieldType='many-to-many'
lazy=true;
}
网站ORM CFC
component persistent=true table='Sites' {
property name='id' column='SiteID' fieldType='id';
property name='name' column='SiteName';
}
ColdFusion错误
collection foreign key mapping has wrong number of columns: staff.sites type: integer
答案 0 :(得分:0)
如果连接表有多个外键列(引用了 目标表的复合键),那么必须使用逗号分隔 列名。也是指定列名的顺序 必须匹配定义的复合键的顺序。
http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS5FFD2854-7F18-43ea-B383-161E007CE0D1.html
应支持复合键。
尝试切换ID,因为您首先定义了员工ID,并且还在id上指定了orm类型以防万一。另外,尝试使用inverseJoinColumn
交换fkColumn
,我永远不会记得哪个应该是哪个,但这是我尝试过的。