Удалить запись только из родительского объекта - PullRequest
0 голосов
/ 18 октября 2018

В моем проекте у меня есть 2 сущности, связанные @OneToMany и @ManyToOne.Проверьте эти фотографии -

enter image description here enter image description here

Моя проблема - когдаЯ удаляю запись из Снабжения , а также удаляю записи из Продукты , но я этого не делаю. Если я удаляю CascadeType.ALL , а затем снова пытаюсь выполнить эту операцию,быть ошибкой

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (shop. products, CONSTRAINT FK65gu3e053fcnl70hwq8vp7b2gИНОСТРАННЫЙ КЛЮЧ (supplies) ССЫЛКИ supplies (id))

Как решить эту проблему ???

1 Ответ

0 голосов
/ 18 октября 2018

О, после 30 минут размышлений я решил это.Я только что добавил этот код в мой метод удаления

@Override
public void deleteSupply(Long id) {
    Supplies supplies = supplyRepository.findById(id).orElse(null);
    Set<Products> productsList = supplies.getProducts();
    productsList.forEach(products -> products.setSupplies(null));

    supplyRepository.deleteById(id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...