ColdFusion 9.0.1 ORMを使用してテーブル間の関係を定義しようとしています。ユーザーや企業ColdFusion 9 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をuserテーブルに書き込む必要があります。このインサートでは、私は会社のテーブルに何も挿入しないようにします。私は、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);
}
私はそのようにそれを実行すると、私はプロパティはjava.lang.Stringの値がタイプ企業IDのオブジェクトから取得することができません」このエラーが発生します予想されるオブジェクト型があります。会社。"
私は、この "property name =" companyID "ormType =" int "のようにcompanyIDのための別のプロパティを持つ必要があると思っていたかもしれないし、" newUser.setCompanyID(#FORM.companyID#); "エンティティセーブでは動作しませんが、ORMReload()でエラーが発生しました。
私は明らかに関係を設定する最良の方法について混乱しています。正式にuser.cfcファイルの関係を参照し、プロパティ名= "companyID" ormType = "int"を使用しても、テーブル間に適切な関係はありません。素晴らしいよ
ありがとうございます。これを変更
が多対1の場合は、プロパティ名= "会社"より優れていますか? – Henry