首页 > 解决方案 > 删除子实体时如何删除父实体?

问题描述

我有两个班级,父母和孩子。我想在删除孩子时删除父实体。请注意,孩子不应该知道父母,所以我不能添加反向引用。

        @Getter
@Setter
@Entity
@Table(name = "parent")
public class Parent {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(optional = false)
    @JoinColumn(name = "child_id")
    private Child child;
}

    @Getter
@Setter
@Entity
@Table(name = "child")
public class Child {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
}

编辑后这样它仍然无法正常工作

@Getter
@Setter
@Entity
@Table(name = "parent")
public class Parent {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(optional = false, cascade = CascadeType.ALL)
    @JoinColumn(name = "child_id")
    private Child child;
}

@Getter
@Setter
@Entity
@Table(name = "child")
public class Child {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
}

标签: javaspring-boothibernatehibernate-mapping

解决方案


如果您在删除子记录时谈论删除父记录,那么您必须使用级联注释。


推荐阅读