【发布时间】:2011-09-04 22:17:41
【问题描述】:
我不是冷融合专家,我打电话给你是因为我在扯头发!
我要删除具有 2 个一对多关系的实体“操作”,即“文本”和“奖励”。
当我尝试删除只有文本但没有奖励的动作时,一切都很好。 Hibernate 删除动作记录和子文本。这就是我想要的!
但是当动作同时有文本和奖励时,我得到了这个错误:
Column 'bonus_actionId' cannot be null
Root cause :java.sql.BatchUpdateException: Column 'bonus_actionId' cannot be null
为什么 Hibernate 在删除 Action 之前不删除 Bonus ?就像文本一样?
谢谢
动作实体:
component {
property name="id" column="action_id" type="numeric" fieldtype="id" generator="native";
/* ... */
property name="texts" type="array"
fieldtype="one-to-many" cfc="Text" fkcolumn="text_actionId" singularname="text"
cascade="all-delete-orphan" lazy="true";
/* ... */
property name="bonus" type="array"
fieldtype="one-to-many" cfc="Bonus" fkcolumn="bonus_actionId" singularname="bonus"
cascade="all-delete-orphan" lazy="true";
}
文本实体:
component {
property name="id" column="text_id" type="numeric" fieldtype="id" generator="native";
/* ... (properties without relationships */
property name="action" fieldtype="many-to-one" fkcolumn="text_actionId" cfc="Action" notnull="false" lazy="true";
}
奖励实体:
component {
property name="id" column="bonus_id" type="numeric" fieldtype="id" generator="native";
/* ... (properties WITH relationships */
// Parent
property name="action" fieldtype="many-to-one" fkcolumn="bonus_actionId" cfc="Action" notnull="true" lazy="true";
}
【问题讨论】:
标签: hibernate orm coldfusion