我正在使用ORM添加到ColdFusion 2016应用程序中。在添加第二个表代码(TableTwo
)之前,应用程序启动并没有给出任何类型的错误。一旦添加了第二个表代码,它就会显示一条错误消息:
无法创建表
XXXXX
。YYYYY
(错误号:150“外键约束 格式不正确”)
其中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";
}