Удалить из CrudRepository не работает на дочернем объекте - PullRequest
0 голосов
/ 26 марта 2019

У меня есть метод DELETE в моем RestController, который должен удалить объект CartItem из Cart. Они сопоставлены с отношением OneToMany, и после вызова метода удаления из CrudRepository элемент остается в базе данных, и я не получаю никаких ошибок ...

Я пытался удалить CascadeType.ALL в CascadeType.REMOVE, пытался также получить корзину из объекта Principal, а также пробовал deleteById (Long id) и delete (CartItem cartItem), но ничего не помогло, элемент все еще находится вбаза данных.

//CartItem repository

public interface CartItemRepository extends CrudRepository<CartItem, Long> {

    CartItem getByCartItemId(Long id);

}

//Cart entity

@OneToMany(mappedBy = "cart", cascade = CascadeType.REMOVE, fetch = FetchType.EAGER)
private Set<CartItem> cartItems = new HashSet<>();

//CartItem entity

 @ManyToOne
 @JoinColumn(name = "cartId")
 @JsonIgnore
 private Cart cart;

//Rest method

 @RequestMapping(value = "remove/{cartItemId}", method = RequestMethod.DELETE)
 @ResponseStatus(value = HttpStatus.NO_CONTENT)
 public void removeItemFromCart(@PathVariable (value = "cartItemId") Long 
 cartItemId){
        cartItemRepository.deleteById(cartItemId);
  }

1 Ответ

0 голосов
/ 26 марта 2019

Добавить orphanRemoval=true вариант к вашей @OneToMany аннотации

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