簡體   English   中英

ColdFusion 9 ORM關系映射

[英]ColdFusion 9 ORM Relationship Mappings

我正在嘗試使用ColdFusion 9.0.1 ORM定義表之間的關系。

我有2張桌子:用戶和公司

我正在研究用戶與公司之間的關系。 現在我有這個:

component persistent="true" table="users" datasource="core"
{
    property name="userID" fieldtype="id" column="userID" 
    setter="false" generator="native";

    property name="firstName" length="255";
    property name="lastName" length="255";
    property name="userName" length="45";

    property name="companies" fieldtype="many-to-one" cfc="company" 
    fkcolumn="companyID" singularname="company";

}

component persistent="true" table="companies" datasource="core"
{
    property name="companyID" fieldtype="id" column="companyID" 
    setter="false" generator="native";

    property name="companyName" length="255";
    property name="companyCode" length="45";;

    property name="users" fieldtype="one-to-many" fkcolumn="userID" cfc="user"
    cascade="all" inverse="true";


}

我在寫入用戶表時遇到問題。 我需要在用戶表中寫入一個companyID,以便可以鏈接回該公司。 在此插入上,我不想將任何內容插入到company表中。 我只想寫到用戶表,並使其通過用戶表中的companyID鏈接到公司表。

這是我的EntitySave代碼:

transaction{

        newUser = EntityNew("user");

            newUser.setCompanies(#FORM.companyID#);     
            newUser.setFirstName(#FORM.firstName#);
            newUser.setLastName(#FORM.lastName#);
            newUser.setUserName(#FORM.userName#);

        EntitySave(newUser);

    }

當我像這樣運行它時,我收到此錯誤“無法從companyID類型的對象檢索屬性java.lang.String的值。期望的對象類型為company。”

我在想,也許我需要為companyID擁有一個單獨的屬性,例如“ property name =“ companyID” ormType =“ int”,然后在EntitySave中使用“ newUser.setCompanyID(#FORM.companyID#);”,但是當我在那里有ORMReload()時,我得到一個錯誤。

我顯然對建立關系的最佳方法感到困惑。 我可以在不嘗試正式引用user.cfc文件中的關系並且僅使用屬性名=“ companyID”或ormType =“ int”的情況下進行此工作,但這並不能為我提供表之間的適當關系。 我認為?

任何幫助都會很棒。

提前致謝。

嘗試更改此:

newUser.setCompanies(#FORM.companyID#);     

對此:

newUser.setCompanies(EntityLoadByPK ("company", FORM.companyID));   

最后一個“真”是什么? 除非您使用EntityLoad(),否則我認為這不是必需的–

EntityLoadByPK ("company", FORM.companyID)

返回一個數組,其中包含符合條件的所有實體(pk=FORM.companyID)

EntityLoadByPK ("company", FORM.companyID, true)

返回符合條件的對象(pk=FORM.companyID)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM