更新或删除表“users”违反表“movie_list”上的外键约束“fk_owner_id”

时间:2021-03-09 09:35:08

标签: java spring spring-boot hibernate jpa

我在删除用户和级联删除他的所有电影列表时遇到问题。

class User {
    @OneToMany(mappedBy = "owner", cascade = CascadeType.REMOVE)
    @JsonIgnore
    private List<MovieList> movieLists;
}

class MovieList {
    @ManyToOne
    @JoinColumn(name = "owner_id", foreignKey = @ForeignKey(name = "fk_owner_id"))
    private User owner;
}

这是我尝试删除用户时调用的方法:

userRepository.delete(user);

当我尝试删除用户时,我得到以下信息:

更新或删除表“users”违反了表“movie_list”的外键约束“fk_owner_id”。

我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:2)

您好,我认为您需要在注释中添加属性

像这样:

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)

换句话说,它必须通过 (CascadeType.ALL, orphanRemoval = true)