Usuwanie powiązanych ze sobą encji

0

Mam 3 powiązane, ze sobą encję tj:

@Entity
public class Library{
    @GeneratedValue
    @Id
    private Long id;

    @OneToMany(cascade = CascadeType.REMOVE)
    private List<Shelf> shelves;
}
@Entity
public class Shelf{
    @GeneratedValue
    @Id
    private Long id;

    @OneToMany(cascade = CascadeType.REMOVE)
    private List<Book> books;
}
@Entity
public class Book{
    @GeneratedValue
    @Id
    private Long id;
}

Wszystko ładnie się usuwa gdy usuwam Library, problem pojawia się gdy chce usunąć Shelf lub Book - zostaje wyrzucony ConstraintViolationException. Można to jakoś obejść bez "ręcznego" usuwania?

0

A jesli nie mozna rozwiazac tego problemu w prosty sposob to lepiej dodac do klasy Book pole Shelf i do klasy Shelf pole Library, zeby hibernate mogl to sam usuwac, czy lepiej usuwać krok po kroku tj. chce usunac Book więc najpierw szukam i usuwam Book z Shelf i pozniej usuwam Book z bazy. hmm?

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