Я пытаюсь определить связь между таблицами, используя 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 в таблицу пользователей, чтобы я мог связаться с компанией. На этой вставке я не хочу ничего вставлять в таблицу компаний. Я просто хочу записать в таблицу пользователей и связать ее с таблицей компаний с помощью идентификатора компании в таблице пользователей.
Вот мой код 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 не может быть получено из объекта типа companyID. Ожидаемый тип объекта - company.»
Я подумал, может быть, мне нужно иметь отдельное свойство для companyID, например, "property name =" companyID "ormType =" int ", а затем, возможно, я смогу использовать" newUser.setCompanyID (# FORM.companyID #); "в EntitySave, но это не работает. Я получаю сообщение об ошибке ORMReload (), когда у меня это там.
Я, очевидно, очень озадачен лучшим способом установить отношения. Я могу заставить это работать, не пытаясь официально ссылаться на отношения в файле user.cfc и просто используя свойство name = "companyID" ormType = "int", но это не дает мне правильную связь между таблицами. Я думаю?
Любая помощь по этому вопросу будет отличной.
Заранее спасибо.