【发布时间】:2014-10-21 14:01:29
【问题描述】:
当我更新 CF ORM 对象时,如果其中一个子对象不再存在,它只会将链接值设置为 null,然后不会删除该项目或其任何子对象。下面是我的父对象和后续子对象的定义。 (挂在上面的孩子也有定义)
公告:
<cfcomponent persistent="true" accessors="true" table="bulletins">
<cfproperty name="id" column="ID" fieldtype="id" generator="identity" ormtype="int" unsavedvalue="0">
<cfproperty name="affectedModels" fieldtype="one-to-many" cfc="affectedModel" fkColumn="bulletinId" cascade="all-delete-orphan" >
</cfcomponent>
受影响的模型:
<cfcomponent persistent="true" accessors="true" table="affectedModels">
<cfproperty name="id" column="ID" fieldtype="id" generator="identity" ormtype="int" unsavedvalue="0">
<cfproperty name="bulletin" fieldType="many-to-one" cfc="bulletin" column="bulletinId" notNull="true" >
<cfproperty name="affectedYears" fieldtype="collection" type="array" fkcolumn="affectedModelId" table="affectedYears" elementColumn="prodYear" elementType="string" lazy="false" cascade="all">
</cfcomponent>
这一切都可以很好地添加和更新,但是如果我删除一个“affectedModel”,那么所有 CF ORM 所做的都是 null 的 bulletinId 字段。它不会删除该行,也不会删除affectedYears 表中的后续行。
任何关于为什么会发生这种情况或我可能做错了什么的建议将不胜感激。
【问题讨论】:
标签: hibernate orm coldfusion hibernate-mapping