JPA:无法删除或更新父行

时间:2016-10-11 09:20:25

标签: java hibernate jpa spring-data

我正在尝试从表中删除子条目,并且我的实体具有双向关系。我得到一个例外" 无法删除或更新父行:外键约束失败"。 当我删除与父项自动删除的子条目关系时,我需要映射。

@Entity
@Table
public class RuleModel implements Comparable<RuleModel>    {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "Rule_Id", unique = true, nullable = false)
    protected Integer id;

    @OneToOne(fetch = FetchType.EAGER)
    protected RuleModel parent;

    @OneToOne(fetch = FetchType.EAGER)
    protected RuleModel child;
}

2 个答案:

答案 0 :(得分:0)

在删除子项之前,您必须断开对象之间的关系。

答案 1 :(得分:0)

我在pre-remove块中设置了parent和child null,所以hibernate首先将关系更新为null然后删除

@PreRemove
public void preRemove() {

    if (parent != null) {
        parent.setChild(null);
    }
    if (child != null) {
        child.setParent(null);
    }
}