shop 구현 (18) 상품 삭제하기
@DeleteMapping(value = "/cartItem/{cartItemId}")
public @ResponseBody ResponseEntity deleteCartItem(@PathVariable("cartItemId") Long cartItemId,
Principal principal){
if (!cartService.validateCartItem(cartItemId, principal.getName())) {
return new ResponseEntity<String>("수정권한이 없습니다.", HttpStatus.FORBIDDEN);
}
cartService.deleteCartItem(cartItemId);
return new ResponseEntity<Long>(cartItemId, HttpStatus.OK);
그런데 delete 자체를 id로도 할 수 있을 것이다.
원코드는
public void deleteCartItem(Long cartItemId){
CartItem cartItem = cartItemRepository.findById(cartItemId).orElseThrow(EntityExistsException::new);
cartItemRepository.delete(cartItem);
이건데,
cartItemRepository.deleteById(cartId);
이 코드도 가능하다.
취향 차이.
전자는 없으면 예외가 터지고,
후자는 없으면 그냥 무시된다. 아무 일도 일어나지 않게 된다.
public void deleteCartItem(Long cartItemId) {
CartItem cartItem = cartItemRepository.findById(cartItemId)
.orElseThrow(EntityNotFoundException::new);
cartItemRepository.delete(cartItem);
}
서비스 코드