Обновление в PUT запросе

Есть две сущности:

Book

@Entity
@Table(name="book")
@Getter
@Setter
public class BookEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "vendor")
    private String vendor;

    @Column(name = "title")
    private String title;

    @Column(name = "description")
    private String description;

    @OneToMany(mappedBy = "genreBookId", cascade = CascadeType.ALL)
    private List<GenreEntity> genres;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="library_id")
    private Library libraryId;

    public BookEntity() {
    }

и Genre

@Entity
@Table(name="genre")
@Getter
@Setter
public class GenreEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "title")
    private String title;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="book_id")
    private BookEntity genreBookId;

    public GenreEntity() {
    }
}

Сервис

@Override
    public BookEntity updateBook(Long bookId, BookEntity updateBook) throws BookNotFoundException {
        return bookRepository.findById(bookId)
                .map(book -> {
                    book.setVendor(updateBook.getVendor());
                    book.setTitle(updateBook.getTitle());
                    book.setDescription(updateBook.getDescription());
                    
                    updateBook.getGenres().forEach(g -> g.setGenreBookId(book));
                    book.setGenres(updateBook.getGenres());

                    return bookRepository.save(book);
                })
                .orElseThrow(() -> new BookNotFoundException("Книга с таким идентификатором не найдена")); //исправить
    }

Запросы выполняю через Postman.

Отправляя такой put запрос

{
    "vendor": "7613252153-32",
    "title": "Название",
    "description": "Описание",
    "genres": [
        {
            "title": "Другой жанр"
        },
        {
            "title": "Другой жанр2"
        },
        {
            "title": "Ещё один жанр"
        }
    ],
    "libraryId": 1
}

в столбце genres данные не обновляются, а добавляются, т.е. к двум предыдущим добавляются ещё 3 жанра

"genres": [
        {
            "title": "Старый жанр"
        },
        {
            "title": "Старый жанр2"
        },
        {
            "title": "Другой жанр"
        },
        {
            "title": "Другой жанр2"
        },
        {
            "title": "Ещё один жанр"
        }
    ]

Ответы (0 шт):