CascadeType.REMOVE "Referentielle Integrität verletzt"

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

von mir nur Kurzantwort und Rest des Wochenendes keine Rückmeldung mehr erwarten :wink: :
einerseits mit Suchen wie ‚SqlExceptionHelper ManyToMany remove cascade all‘ über Suchmaschine verschiedene Themen dazu abgrasen,

andererseits eins davon hervorgehoben:
java - Hibernate many-to-many cascading delete - Stack Overflow
und insbesondere einen Hinweis auf Verwendung auf ‚mappedBy‘,
wenn nicht bewußt bei dir ohne, dann vielleicht noch über dessen Möglichkeiten schlau machen,

ob aber später beides geht, Car oder Person beliebig einzeln löschen und dazu jeweils Rest aufgeräumt, das ist fraglich