【发布时间】:2012-05-23 03:08:53
【问题描述】:
当对订单(父级)执行删除时,hibernate 会尝试级联删除子级。它不是首先删除子项,而是尝试将外键清空,然后删除父项,然后删除子项。
有没有办法更改我的配置以允许先删除子项,然后删除父项?绕过清空外键的步骤?
表格和相关列
订购
id - PK, int, not null
订单结果
id - PK,整数,不为空 order_id - FK, int, not null
实体规范
订购
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "CLOrderID")
public List<OrderResult> getOrderResults() {
return orderResults;
}
订单结果
@ManyToOne
@JoinColumn(name = "CLOrderID", nullable = false)
public Order getOrder() {
return order;
}
【问题讨论】:
-
您是否尝试将 ManyToOne 的可选属性设置为 false?
-
是的,我只是重试了一次。同样的问题,“无法将值 NULL 插入 'CLOrderID' 列”。
-
你找到解决这个@JohnHelfert的方法了吗?
标签: hibernate cascade cascading-deletes bidirectional notnull