Hallo
Ich habe eine Frage zu dem Umstand wie man Many-to-Many Referenzen vernünftig löschen lässt.
Folgender Code:
@Entity
@Table(name = "person")
public class Person extends AbstractEntity {
@ManyToMany(cascade = { CascadeType.ALL }, targetEntity = Car.class)
@JoinTable(name = "person_cars", joinColumns = @JoinColumn(name = "person_id"), inverseJoinColumns = @JoinColumn(name = "car_id"))
private Set<cars> cars;
}
@Entity
@Table(name = "car")
public class Car extends AbstractEntity {
@ManyToMany(cascade = { CascadeType.ALL}, fetch = FetchType.LAZY, targetEntity = Person.class)
@JoinTable(name = "person_cars", joinColumns = @JoinColumn(name = "car_id"), inverseJoinColumns = @JoinColumn(name = "person_id"))
Set<Person> person;
}
Der Plan ist nun, dass, wenn ich ein Car lösche, dieses auch aus der Liste in den jeweiligen Personen entfernt wird. Stattdessen wird aber gemeckert weil
[AWT-EventQueue-0] [ERROR] o.h.e.jdbc.spi.SqlExceptionHelper - Referentielle Integrität verletzt: "FK_C5API18NN65AT38RJCVPDSU6R: PUBLIC.PERSON_CARS FOREIGN KEY(CAR_ID) REFERENCES PUBLIC.CAR(CAR_ID) (2)"
Bisher kann ich das umgehen, indem ich das ganze per Hand mache. Aber irgendwie ist das ja nicht Sinn der Sache, oder?
Wie ist in so einem Fall der korrekte Weg, das das ganze funktioniert?
Besten Dank schonmal