繁体   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