inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

NullPointerException 발생시 트랜잭션 롤백 안되는 이유

225

정은선

작성한 질문수 1

0

@Transactional(rollbackFor = {Exception.class})
    public HashMap<String, Object> saveOrder(OrderDto orderDto){
        HashMap<String, Object> returnMap = new HashMap<String, Object>();
        try{
            String orderId = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
            Device device = deviceRepo.findDeviceByDeviceId(orderDto.getDeviceId());
            if(ObjectUtils.isEmpty(device)){
                returnMap.put("resCode", ResMessage.DeviceNotFound.getResCode());
                returnMap.put("resMsg", ResMessage.DeviceNotFound.getResMessage());
                return returnMap;
            }

            orderRepo.save(OrderList.builder()
                    .orderId(orderId)
                    .deviceId(orderDto.getDeviceId())
                    .totalPrice(orderDto.getTotalPrice())
                    .couponNum(orderDto.getCouponNum())
                    .build());

            //쿠폰 사용 적용
            if(!StringUtils.isEmpty(orderDto.getCouponNum())){
                CouponList couponList = couponListRepo.findByCouponNum(orderDto.getCouponNum());
                if(!ObjectUtils.isEmpty(couponList))
                    couponList.setUsed(device);
            }

            returnMap.put("resCode", ResMessage.Success.getResCode());
            returnMap.put("resMsg", ResMessage.Success.getResMessage());
            return returnMap;
        } catch (Exception e) {
            returnMap.put("resCode", ResMessage.SystemError.getResCode());
            returnMap.put("resMsg", ResMessage.SystemError.getResMessage());
            return returnMap;
        }
    }

 

주문하는 api 연습하고 있는데요 ㅠㅠ

쿠폰을 사용한 쿠폰으로 적용하는 부분에서 일부로 없는 쿠폰번호를 날려서 NullPointerException을 내봤는데 트랜잭션 롤백이 안되고 주문한 내용이 DB에 적용되더라구요 ㅠㅠ

unchecked exception이니까 롤백되는게 맞는거같은데 롤백이 안되서요 ㅠㅠ 혹시 아시는분 있을까요?

답변 0

상금은 언제 받을 수 있나요?

4

63

0

Issuance 테이블에 status, couponId 인덱스가 꼭 필요할까요?

2

46

1

강의 자료 접근 불가

1

48

1

Vercel json 파일 참고 여부

1

49

2