首页 > 解决方案 > 如何在不级联删除 ChildEntities 的情况下删除(@ManyToOne)实体?

问题描述

我在 Spring,JPA 设置中获得了以下实体:

@Entity
public class Person {
    @Id
    //Id
    //some object variables

    @ManyToOne(fetch = FetchType.EAGER)
    private Person mother;
    @ManyToOne(fetch = FetchType.EAGER)
    private Person father;
}

我想删除一个人,即另一个人的母亲/父亲。与我发现的其他帖子相反,我只想删除该特定人员以及与该实体相关的所有外键。这样子实体在数据库中保持不变(父级的外键除外)。我错过了一种简单的方法吗?

标签: javaspringhibernatejpa

解决方案


有什么问题?如果您删除一个人,则通过 *ToOne 关联引用该人的其他对象的外键列将设置为空。如果您对数据库有一个非空约束,您将得到数据库的空约束违规。


推荐阅读