【发布时间】:2012-07-04 16:08:28
【问题描述】:
当我删除一个表中的记录时,应该删除另一个表中的相关记录。但我收到了:
java.sql.BatchUpdateException:批处理条目 0 更新 child_table set parent_table_id=null where parent_table_id=63 被中止
上述异常是针对以下设置引发的:
@OneToMany(cascade = javax.persistence.CascadeType.ALL, targetEntity = ChildTable.class)
@JoinColumn(name = "parent_table_id")
@org.hibernate.annotations.Fetch(FetchMode.SUBSELECT)
public List<ChildTable> getTables() {
return tables;
}
如果我没记错的话,有了这样的注释,当在ParentTable中删除一条记录时,应该在Child one中删除对应关系。在完全删除之前,它会尝试变为“null”(因为相应的记录不再存在)。此 id 列是“非空”。当我将其设为“null”(仅用于测试这种情况)时,一切正常。
你能帮我理解这背后的真正问题吗?
提前谢谢你。
【问题讨论】: