无法删除父母和子女

时间:2017-10-17 10:15:17

标签: mysql spring hibernate

我有两个使用Spring和Hibernate的实体

实体A:

@Entity
@Table(name = "A")
public class A {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne(cascade = CascadeType.ALL, mappedBy = "a")
    private B b;

这里我与实体B有一对一的关系,关系的所有者是实体A.

实体B:

@Entity
public class B{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne
    @JoinColumn(name = "a_ID")
    private A a;

保存实体没有问题。实体B获取数据库中实体A的ID。 但是当我删除实体A时,我也想删除属于A的实体B.

当我删除时,我收到错误:

MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails

我认为我在我的实体中的声明是正确的。这有什么问题?

修改

当我检查实体B的表格,特别是实体A的外键时,它表示在删除时限制更新

1 个答案:

答案 0 :(得分:0)

在A类中将orphanRemoval属性设置为true

像这样:@OneToOne(mappedBy = "a", cascade = CascadeType.ALL, orphanRemoval = true)