Lucee ORM - повторяющийся столбец сообщения об ошибке в сопоставлении для объекта

Повторяющийся столбец в сопоставлении для сущности: столбец пользователя: идентификатор пользователя (должен быть сопоставлен с вставкой = "ложь" обновление = "ложь")

Это сообщение об ошибке, которое я получаю. У меня есть пользовательская таблица (клиент), которая является самореферентной. Таким образом, я могу сказать, какой пользователь создал что и когда.

Вот моя сущность.

component  table="customer" output="false" accessors="true" persistent="true" {
  property name="userid"      column="userid"       ormtype="int"   fieldtype="id"    generator="identity";
  property name="firstname"   column="firstname"    ormtype="string";
  property name="lastname"    column="lastname"     ormtype="string";
  property name="email"       column="email"        ormtype="string";
  property name="active"      column="active"       type="boolean"  ormtype="boolean";
  property name="createdOn"   column="createdOn"    ormtype="date";
  property name="modifiedOn"  column="modifiedOn"   ormtype="date";
  property name="createdBy"   fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true";
  property name="modifiedBy"  fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true";
}

Я добавил то, что сообщение об ошибке говорит мне добавить к каждому свойству, чтобы они теперь выглядели так:

property name="createdBy"   fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true" insert="false" update="false";
property name="modifiedBy"  fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true" insert="false" update="false";

РЕШЕНИЕ: я добавил inversejoincolumn="userid" и это сработало. Смотри ниже

property name="createdBy"     column="createdBy"      fieldtype="one-to-one"  cfc="user"    inversejoincolumn="userid";
property name="modifiedBy"    column="modifiedBy"     fieldtype="one-to-one"  cfc="user"    inversejoincolumn="userid";

person pendo    schedule 18.03.2017    source источник
comment
Так остается ли ошибка после внесения изменений и вызова OrmReload()?   -  person CfSimplicity    schedule 18.03.2017
comment
Мне нужно иметь возможность сохранять/обновлять эти столбцы (созданные и модифицированные), но да, если я добавлю этот код во ВСЕ столбцы идентификаторов пользователей, включая первичный ключ, он будет работать, но поскольку мне нужно сохранить данные, он технически не «работает».   -  person pendo    schedule 19.03.2017
comment
Вам не нужно добавлять его в свойство identiy userid. Но в любом случае кажется, что вам нужно создать определенные ключи для ваших двух самореферентных отношений.   -  person CfSimplicity    schedule 19.03.2017
comment
Это то, что исправило свойство name=modifiedBy column=modifiedBy fieldtype=one-to-one cfc=user inversejoincolumn=userid; Я добавил inversejoinclumn как в createdBy, так и в createdBy. спасибо всем за предложения.   -  person pendo    schedule 20.03.2017


Ответы (1)


В вашей таблице клиентов создайте отдельные столбцы для записи идентификаторов пользователей, которые создают и изменяют. Вы можете назвать их creatorid и modifierid.

Затем измените fkcolumn в отношениях createdBy и modifiedBy с userid на creatorid и modifierid соответственно.

person CfSimplicity    schedule 19.03.2017