Sql server ColdFusion表单将多个一对一外键属性映射到另一个表中的同一PK

Sql server ColdFusion表单将多个一对一外键属性映射到另一个表中的同一PK,sql-server,hibernate,orm,coldfusion,coldfusion-9,Sql Server,Hibernate,Orm,Coldfusion,Coldfusion 9,在ColdFusion 9.0.2中,我试图将一个实体(POST)中的两个一对一关系\属性(createdBy和modifiedBy)映射到同一个表\实体(用户)和同一列(用户ID),并遇到以下错误: 实体映射中的重复列:过帐列:createdBy(应使用insert=“false”update=“false”进行映射) 我需要这两种关系在我更改创建者和修改帖子的用户时都可以修改。如果我从发布实体中删除其中一个关系createdBy或modifiedBy,那么就没有问题了,因此CF和/或ORM似

在ColdFusion 9.0.2中,我试图将一个实体(POST)中的两个一对一关系\属性(createdBy和modifiedBy)映射到同一个表\实体(用户)和同一列(用户ID),并遇到以下错误:

实体映射中的重复列:过帐列:createdBy(应使用insert=“false”update=“false”进行映射)

我需要这两种关系在我更改创建者和修改帖子的用户时都可以修改。如果我从发布实体中删除其中一个关系createdBy或modifiedBy,那么就没有问题了,因此CF和/或ORM似乎不希望这两个属性指向另一个实体的同一列

带有FK约束的SQL

CREATE TABLE posting (
    postingID int IDENTITY (1,1) NOT NULL,
    name varchar(35) NOT NULL,
    createdBy int NOT NULL,
    modifiedBy int NOT NULL,

    PRIMARY KEY (postingID),
    CONSTRAINT fk_postingCreatedBy FOREIGN KEY (createdBy) REFERENCES user(ID),
    CONSTRAINT fk_postingModifiedBy FOREIGN KEY (modifiedBy) REFERENCES user(ID)
);
component persistent="true" table="posting" schema="dbo" output="false" {
    // properties
    property name="postingID" type="numeric" fieldtype="id" generator="identity";
    property name="name" type="string";

    // relationships
    property name="createdBy" fieldtype="one-to-one" cfc="user"; 
    property name="modifiedBy" fieldtype="one-to-one" cfc="user";
}
发布有关系的实体

CREATE TABLE posting (
    postingID int IDENTITY (1,1) NOT NULL,
    name varchar(35) NOT NULL,
    createdBy int NOT NULL,
    modifiedBy int NOT NULL,

    PRIMARY KEY (postingID),
    CONSTRAINT fk_postingCreatedBy FOREIGN KEY (createdBy) REFERENCES user(ID),
    CONSTRAINT fk_postingModifiedBy FOREIGN KEY (modifiedBy) REFERENCES user(ID)
);
component persistent="true" table="posting" schema="dbo" output="false" {
    // properties
    property name="postingID" type="numeric" fieldtype="id" generator="identity";
    property name="name" type="string";

    // relationships
    property name="createdBy" fieldtype="one-to-one" cfc="user"; 
    property name="modifiedBy" fieldtype="one-to-one" cfc="user";
}
用户实体

component persistent="true" table="user" schema="dbo" output="false" {
    // properties
    property name="userID" column="ID" type="numeric" fieldtype="id" generator="identity";
    property name="firstName" type="string";
    property name="lastName" type="string";
}
我试过几种方法来解决这个问题,但都没有用。我也找不到任何关于ColdFusion表单的帮助,甚至我发现其他语言的问题/帖子/Hibernate的使用与我的特定场景不匹配

非常感谢您提供的任何帮助或信息

试试看:

// relationships
property name="createdBy" fieldtype="one-to-one" cfc="user" fkcolumn="createdBy"; 
property name="modifiedBy" fieldtype="one-to-one" cfc="user" fkcolumn="modifiedBy";

如果不起作用,请尝试多对一。它的限制更少,也更容易使用。

与前面的答案类似,您可能不希望这里有一对一的关系。除非出于某种原因,用户只能发表一篇文章。你很可能真的想要多对一

property name="createdBy" fieldtype="many-to-one" cfc="user" fkcolumn="createdBy";
property name="modifiedBy" fieldtype="many-to-one" cfc="user" fkcolumn="modifiedBy";

这允许每个用户有许多帖子,但每个帖子只能有一个用户。

谢谢,也谢谢@Henry。我真的只是喝了一杯!读这些的时候。我选择了这个响应,因为它肯定是这两者的组合,一旦更改为多对一关系,fkcolumn属性也将需要。如果CF\ORM有比我得到的更好的错误消息,它就可以保护我不犯明显的错误……也许:)嘿嘿,好吧@用户2733498需要更多的重复次数。:)我愿意!长期阅读,第一次回答。回答者是一个词吗?