JPA - @OneToMany, @ManyToOne - problem z usuwaniem

0

Klasa Author:

    @Id
    @GeneratedValue(
	    strategy = GenerationType.AUTO)
    private int id;
    private String firstName;
    private String lastName;
    @OneToMany(
	    mappedBy = "author")
    private List<Book> bookList;

Klasa Book:

    @Id
    @GeneratedValue(
	    strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private String language;
    private int isbn;
    @ManyToOne
    @JoinColumn(
	    name = "author_fk")
    private Author author;

Chcę teraz usunąć autora i dostaje taki błąd: update or delete on table "author" violates foreign key constraint "fk_book_author_fk" on table "book". Czy jest jakaś możliwość, żeby usunąć autora (wraz lub bez usuwania jednocześnie powiązanej z nim książki) bez wcześniejszego usunięcia powiązanej z nim książki ?

0

Owszem, istnieje taka mozliwosc. Sprobuj ten kawalek kodu:

@OneToMany(mappedBy = "author")
private List<Book> bookList;

Zamienic na:

@OneToMany(mappedBy = "author", cascade={CascadeType.REMOVE})
private List<Book> bookList;

Nie sprawdzalem, ale powinno dzialac.

0

@tk, wielkie dzięki - działa

0

Nie ma sprawy :)

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