Ich habe die folgenden Einheiten. Ich möchte in der Lage sein, einen Benutzer zu löschen, und alle Einträge in der UserGroupMap, die diesen Benutzer enthalten, sollten ebenfalls gelöscht werden. Jedes Mal, wenn ich versuche, einen Benutzer zu löschen, der auch einen Eintrag in UserGroupMap hat, erhalte ich den folgenden Fehler. Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl Wie kann ich dieses Verhalten erreichen?Kaskade löschen mit ManyToMany Beziehung
@Entity
public class User {
@Id
private Long id;
@Column
private String name;
@ManyToMany(mappedBy = "users", cascade = CascadeType.All)
private Set<Group> groups;
}
@Entity
public class Group {
@Id
private Long id;
@Column
private String type;
@ManyToMany
@JoinTable(name = "UserGroupMap",
joinColumns = @JoinColumn(name = "groupId", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "userId", referencedColumnName = "id"))
private Set<User> users;
}
Mögliche duplizieren - http://stackoverflow.com/q/1082095/5516322 – aviad