I have a Response entity and every response can have only one user and every user can have many responses. I'm trying to connect it by a lookup table using @JoinTable in Response entity like this:
@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;
but I can't delete a user. I'm getting the following error:
Cannot delete or update a parent row: a foreign key constraint fails (`database`.`response_user`, CONSTRAINT `FKf48he1fef6q4d4t3kw4605pfw` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
What I would like to achieve is that when the user is deleted, it also deletes everything associated with that user.
public class Response {
@ManyToOne
@JoinTable(name="response_user",
joinColumns={@JoinColumn(name="response_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
private User user;
}
Your User Entity should look like this:
public class User {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
@JsonIgnore
private Collection<Response> responses;
}