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

...

if(!StringUtils.isEmpty(orderDto.getCouponNum())){
CouponList couponList = couponListRepo.findByCouponNum(orderDto.getCouponNum());
couponList.setUsed(device);
}

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


주문하는거 api 연습중인데 ㅠㅠ


if(!StringUtils.isEmpty(orderDto.getCouponNum())){
CouponList couponList = couponListRepo.findByCouponNum(orderDto.getCouponNum());
couponList.setUsed(device);
}


여기서 일부로 없는 쿠폰번호 날려서 NullPointerException 내봤거든 ㅠㅠ 근데 트랜잭션이 롤백이 안됨 ㅠㅠ 왜그러는거야? 

unchecked exception이니까 롤백되야하는거 아니야?ㅜㅜ 

나 너무 혼란스러움..ㅠㅠ 아는 형님 있음 알려줭 ㅠㅠ