2016-02-02 50 views
0

我想要确定在使用ORM的CF中的一对多关系中删除一个孩子的具体细节。我已经发布了一个小的测试应用程序的位置:Coldfusion - ORM删除子对象

https://github.com/pnahtanoj/cfrelationship

关于对create.cfm的ln47的removeChildren此()函数 - 如果我倾倒父对象之前和之后,我看到孩子们已被删除。但是,交易结束后,他们仍然在数据库中。不知道我错过了什么。

使用CF10中,MySQL 5.something ...

回答

0

因为你设置了逆真正在许多方面,这意味着只有孩子一边是由Hibernate来跟踪。

您可以将所有孩子的父项设置为空。

public void function removeChildren() { 
    transaction { 
     var children = getChilds(); 
     for (var c in children) 
      c.setParent(javacast('null','')); 
    } 

    arrayClear(variables.childs); 
} 
+1

我认为inverse ='true'在每个Whish的CF ORM书中都处于正确的位置。我终于得到它与这个定义的工作:物业 名=“童车” TYPE =“阵列” 字段类型=“一个一对多” CFC =“孩子” singularname =“孩子” fkcolumn =“PARENTID” cascade =“all-delete-orphan” inverse =“true”; –