Hibernate ColdFusion 9表单关系映射

Hibernate ColdFusion 9表单关系映射,hibernate,orm,coldfusion,Hibernate,Orm,Coldfusion,我试图使用ColdFusion 9.0.1 ORM定义表之间的关系 我有两个表:用户和公司 我正在研究用户与公司之间的关系。现在我有这个: component persistent="true" table="users" datasource="core" { property name="userID" fieldtype="id" column="userID" setter="false" generator="native"; property name="

我试图使用ColdFusion 9.0.1 ORM定义表之间的关系

我有两个表:用户和公司

我正在研究用户与公司之间的关系。现在我有这个:

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";

}

我在写入用户表时遇到问题。我需要在用户表中写入一个companyID,以便可以链接回该公司。在此插入中,我不想在companys表中插入任何内容。我只想写入users表,让它通过users表中的companyID链接到companys表

以下是我的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。”

我在想,也许我需要为该公司设置单独的属性,比如“property name=“companyID”或mtype=“int”,然后也许我可以使用“newUser.setCompanyID(#FORM.companyID#);“在EntitySave中,但这不起作用。我在ORMReload()上得到一个错误;当我在其中时

显然,我对设置关系的最佳方式感到非常困惑。我可以在不尝试正式引用user.cfc文件中的关系的情况下使用property name=“companyID”或mtype=“int”来实现这一点,但这并不能给我提供表之间的正确关系。我想

这方面的任何帮助都会很好

提前感谢。

尝试更改此选项:

newUser.setCompanies(#FORM.companyID#);     
为此:

newUser.setCompanies(EntityLoadByPK ("company", FORM.companyID));   
最后一个“true”是什么意思?我认为不需要它,除非您使用EntityLoad()

返回一个数组,其中包含符合条件的所有实体
(pk=FORM.companyID)


返回符合条件的对象
(pk=FORM.companyID)

谢谢您的帮助。这不起作用,但非常接近。这对newUser.setcompanys有效(EntityLoadByPK(“company”,FORM.companyID,true));现在有意义了。谢谢!我将更新答案以显示什么对您有效。很高兴您取得了一些进展。最后一个“true”是什么意思?我认为不需要它,除非您使用
EntityLoad()
如果只是多对一,那么
property name=“company”
不是更好吗?
newUser.setCompanies(EntityLoadByPK ("company", FORM.companyID));   
EntityLoadByPK ("company", FORM.companyID)
EntityLoadByPK ("company", FORM.companyID, true)