Relacja Wiele do Wielu w JPA. Problem z usuwaniem

0

Witam
Mam pytanie bardziej teoretyczne niż praktyczne. Moja Aplikacja składa się z 2 encji, turysta i lot powiązanych relacją ManyToMany. Na tą chwilę lot jest właścicielem relacji.
Czy istnieje możliwość usunięcia lotu, bez usuwania turystów z nim powiązanych i vice versa?
Tak to wygląda na razie, i jak dotąd udało mi się tylko sprawić żeby usunięcie jednego nie usuwało drugiego ale bez odwrotności.

@Entity
public class Flight {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
   /.../
    @ManyToMany(cascade =CascadeType.ALL)
    @JoinTable(name = "flights_tourists",
            joinColumns = {@JoinColumn(name = "flight_id", referencedColumnName = "id")},
            inverseJoinColumns = {@JoinColumn(name = "tourist_id", referencedColumnName = "id")})
    @JsonIgnore
    private List<Tourist> tourists;
/.../

@Entity
public class Tourist {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
   /.../
    @ManyToMany(cascade = CascadeType.ALL,mappedBy = "tourists")
    @JsonIgnore
    private List<Flight> flights;

  /.../
0

Po przeszukiwaniu zakamarków internetu mam zmieniłem na :

@ManyToMany(cascade ={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})

w obu. Sprawiło to tyle, że mogę usunąć lot bez usuwania turysty ale przy próbie usunięcia turysty dostaję błąd:
"error": "Internal Server Error",
"message": "could not execute statement; SQL [n/a]; constraint ["FKRS1AXED25BEXEB7UQYF5JFLTU: PUBLIC.FLIGHTS_TOURISTS FOREIGN KEY(TOURIST_ID) REFERENCES PUBLIC.TOURIST(ID) (531)"; SQL statement:\ndelete from tourist where id=? [23503-200]]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement",
"trace": "org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint ["FKRS1AXED25BEXEB7UQYF5JFLTU: PUBLIC.FLIGHTS_TOURISTS FOREIGN KEY(TOURIST_ID) REFERENCES PUBLIC.TOURIST(ID) (531)"; SQL statement:\ndelete from tourist where id=? [23503-200]]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement\r\n\tat

1 użytkowników online, w tym zalogowanych: 0, gości: 1