코드 그라데이션

shop 구현 (18) 상품 삭제하기 본문

Spring/SpringShop

shop 구현 (18) 상품 삭제하기

완벽한 장면 2023. 7. 25. 19:30

@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);
  }

 

서비스 코드

728x90
Comments