2017-03-18 79 views
0
在實體映射

重複柱:用戶柱:用戶ID(應與插入件=「假」更新被映射=「假」)Lucee ORM - 在映射「錯誤消息」重複列實體

這是我收到的錯誤消息。我有一個自引用的用戶表(客戶)。這樣我可以告訴哪個用戶創建了哪個和哪個時間。

這是我的實體。

component table="customer" output="false" accessors="true" persistent="true" { 
    property name="userid"  column="userid"  ormtype="int" fieldtype="id" generator="identity"; 
    property name="firstname" column="firstname" ormtype="string"; 
    property name="lastname" column="lastname"  ormtype="string"; 
    property name="email"  column="email"  ormtype="string"; 
    property name="active"  column="active"  type="boolean" ormtype="boolean"; 
    property name="createdOn" column="createdOn" ormtype="date"; 
    property name="modifiedOn" column="modifiedOn" ormtype="date"; 
    property name="createdBy" fieldtype="one-to-one" cfc="user" fkcolumn="userid" inverse="true"; 
    property name="modifiedBy" fieldtype="one-to-one" cfc="user" fkcolumn="userid" inverse="true"; 
} 

我已經添加了什麼錯誤消息告訴我添加到每個屬性,因此他們現在的樣子:

property name="createdBy" fieldtype="one-to-one" cfc="user" fkcolumn="userid" inverse="true" insert="false" update="false"; 
property name="modifiedBy" fieldtype="one-to-one" cfc="user" fkcolumn="userid" inverse="true" insert="false" update="false"; 

SOLUTION: 我加inversejoincolumn =「用戶id」和它的工作。見下面

property name="createdBy"  column="createdBy"  fieldtype="one-to-one" cfc="user" inversejoincolumn="userid"; 
property name="modifiedBy" column="modifiedBy"  fieldtype="one-to-one" cfc="user" inversejoincolumn="userid"; 
+0

因此,進行更改並調用'OrmReload()'後仍然存在錯誤? – CfSimplicity

+0

我需要能夠保存/更新這些列(createdBy和modifiedBy),但是,如果我將該代碼添加到所有userid列(包括主鍵),它都可以工作,但由於我需要保存數據,它在技術上並不「工作」。 – pendo

+0

您不需要將其添加到標識「userid」屬性。但無論如何,似乎你需要爲你的2個自我指涉關係創建特定的鍵。 – CfSimplicity

回答

0

在您的客戶表中創建單獨的列以記錄創建和修改用戶的ID。你可以稱它們爲creatoridmodifierid

然後改變你createdBymodifiedBy關係fkcolumnuserid分別creatoridmodifierid

相關問題