Добавление в существующее ORM-приложение ColdFusion 2016

Я работаю над добавлением в приложение ColdFusion 2016 с помощью ORM. Приложение подтягивается и не выдает никаких ошибок до добавления кода второй таблицы (TableTwo). Как только добавляется второй код таблицы, появляется сообщение об ошибке:

Can't create table XXXXX.YYYYY (errno: 150 "Foreign key constraint is incorrectly formed")

Где XXXXX - это имя приложения в целом, а не TableOne, TableTwo или BaseTable.

Есть ли какие-нибудь идеи относительно того, что вызывает такую ​​ошибку в приложении?

Если я удалю все ссылки на TableTwo и перезагружу ORM, приложение снова откроется. TableOne и TableTwo необходимо присоединить к BaseTable, но они не будут соединяться друг с другом.

Ниже приведен пример текущего форматирования кода.

TableOne.cfc

component {

   property name = "id" fieldType = "id"  ormtype = "int" type = "numeric" generator = "native";
   property name = "baseTableID" ormtype = "int" type = "numeric" insert = "false" update = "false";

   //relations
   property name"baseTable" fieldType = "one-to-one" cfc = "BaseTable" fkcolumn = "baseTableID" joincolumn = "id" notnull = "true"  casecade = "save-update";

}

BaseTable.cfc

component {

   property name = "id" fieldType = "id" ormtype = "int" type = "numeric" generator = "native";

   //relations
   property name = "TableOne" fieldtype = "one-to-one" cfc = "TableOne"  mappedby = "baseTable" cascade = "all-delete-orphan";

   --Attempting to add a second one
   property name = "TableTwo" fieldtype = "one-to-one" cfc = "TableTwo"  mappedby = "baseTable" cascade = "all-delete-orphan";

}

TableTwo.cfc

component {

   property name = "id" fieldType = "id"  ormtype = "int" type = "numeric" generator = "native";
   property name = "baseTableID" ormtype = "int" type = "numeric" insert = "false" update = "false";

   //relations
   property name"BaseTable" fieldType = "one-to-one" cfc = "BaseTable" fkcolumn = "baseTableID" joincolumn = "id" notnull = "true"  casecade = "save-update";

}

У вас есть опечатка в атрибуте property таблицы BaseTable в файлах TableOne.cfc и TableTwo.cfc. Вместо cascade у вас casecade. Это действительно в вашем коде или только здесь, в stackoverflow?

Miguel-F 06.09.2018 14:11
Преобразование данных с помощью красноречивых аксессоров и мутаторов в Laravel
Преобразование данных с помощью красноречивых аксессоров и мутаторов в Laravel
Laravel поставляется с мощной функцией под названием "Eloquent Accessors and Mutators".
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel могут быть немного сложными, но с помощью Eloquent ORM и его моделей мы можем сделать это с легкостью. В этой...
1
1
66
0

Другие вопросы по теме