【问题标题】:ColdFusion: ORM Relationship with LinkTable and Multiple Foreign KeysColdFusion:与 LinkTable 和多个外键的 ORM 关系
【发布时间】:2015-07-11 10:29:48
【问题描述】:

我的数据库结构主要由每个表的多个主键组成,因此每个连接都需要多个列。我正在尝试使用具有链接表的 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

【问题讨论】:

    标签: orm coldfusion relationship coldfusion-11


    【解决方案1】:

    如果连接表有多个外键列(引用 目标表的复合键),则必须使用逗号分隔 列名。此外,指定列名的顺序 必须与定义的复合键的顺序相匹配。

    http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS5FFD2854-7F18-43ea-B383-161E007CE0D1.html

    应该支持复合键。

    尝试切换 id,因为您首先定义了员工 id,并在 id 上指定 orm 类型以防万一。另外,尝试将inverseJoinColumnfkColumn 交换,我不记得哪个应该是哪个,但那是我会尝试的。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2015-06-06
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多