Seq*_*zia 2 coldfusion orm hibernate
我试图使用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";
}
Run Code Online (Sandbox Code Playgroud)
和
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";
}
Run Code Online (Sandbox Code Playgroud)
我在写入用户表时遇到问题.我需要将一个companyID写入用户表,以便我可以链接回公司.在这个插入中我不想在公司表中插入任何内容.我只想写入users表,并通过users表中的companyID链接到companies表.
这是我的EntitySave代码:
transaction{
newUser = EntityNew("user");
newUser.setCompanies(#FORM.companyID#);
newUser.setFirstName(#FORM.firstName#);
newUser.setLastName(#FORM.lastName#);
newUser.setUserName(#FORM.userName#);
EntitySave(newUser);
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到这个错误"无法从类型为companyID的对象中检索属性java.lang.String的值.预期的对象类型是公司."
我想也许我需要为companyID提供单独的属性,例如"property name ="companyID"ormType ="int"然后我可以在EntitySave中使用"newUser.setCompanyID(#FORM.companyID#);"但是这不起作用.我在ORMReload()上得到一个错误;当我在那里有.
我显然对设置关系的最佳方式感到困惑.我可以在没有尝试正式引用user.cfc文件中的关系并且只使用属性name ="companyID"ormType ="int"的情况下工作,但这并没有给出表之间的正确关系.我认为?
对此的任何帮助都会很棒.
提前致谢.
尝试改变这个:
newUser.setCompanies(#FORM.companyID#);
Run Code Online (Sandbox Code Playgroud)
对此:
newUser.setCompanies(EntityLoadByPK ("company", FORM.companyID));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |