@ManyToOne 与@JoinTable 的映射得到一个外键约束错误

@ManyToOne mapping with @JoinTable gets a foreign key constraint error

我有一个响应实体,每个响应只能有一个用户,每个用户可以有多个响应。我正在尝试通过查找 table 在响应实体中使用 @JoinTable 来连接它,如下所示:

@ManyToOne()
@JoinTable(
        name = "response_user",
        joinColumns = @JoinColumn(name = "response_id"),
        inverseJoinColumns = @JoinColumn(name = "user_id")
)
@JsonIgnoreProperties({ "firstName", "lastName", "email", "activated", "regDate", "lastVisit" })
private User user;

但我无法删除用户。我收到以下错误:

Cannot delete or update a parent row: a foreign key constraint fails (`database`.`response_user`, CONSTRAINT `FKf48he1fef6q4d4t3kw4605pfw` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))

我想实现的是,当用户被删除时,它也会删除与该用户关联的所有内容。

public class Response {

    @ManyToOne
    @JoinTable(name="response_user",
               joinColumns={@JoinColumn(name="response_id")},
               inverseJoinColumns={@JoinColumn(name="user_id")})
    private User user;
}

您的用户实体应如下所示:

public class User {
    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) 
    @JsonIgnore
    private Collection<Response> responses;
}