[Java, Spring] 주문 로직 중 NullPointerException 해결

2024. 5. 19. 22:24·Trouble Shooting

 

에러가 발생한 메서드인 addOrderItems() 부분을 확인해 보았다.

 

private List<OrderItem> orderItems = new ArrayList<>();

public void addOrderItem(OrderItem orderItem) {
    orderItems.add(orderItem);  //NullPointerException
    orderItem.setOrder(this);
}

orderItems는 List 형태이다.

Builder 패턴에서 List 필드의 기본 값이 null인 것이 생각나 메서드에서 다시 한 번 값을 초기화해봤다.

 

public void addOrderItem(OrderItem orderItem) {
    orderItems = new ArrayList<>();  //초기화
    orderItems.add(orderItem);
    orderItem.setOrder(this);
}

@Transactional
public void toOrder(OrderDto orderDto, Long itemId, int count) {
    Member member = memberRepository.findById(orderDto.getMember().getId())
            .orElseThrow(NotFoundException::new);
    Item item = itemRepository.findById(itemId)
            .orElseThrow(NotFoundException::new);
    Delivery delivery = Delivery.createDelivery(member);

    List<OrderItem> orderItems = new ArrayList<>();  //초기화
    OrderItem orderItem = OrderItem.createOrderItem(item, count);
    orderItems.add(orderItem);

    Order order = Order.createOrder(member, delivery, orderItems);

    orderRepository.save(order);
}

 

 

테스트 실행

@Test
@DisplayName("주문 성공")
void test() {
    //member, item, orderDto 생성

    orderService.toOrder(orderDto, itemA.getId(), 10);
    Order order = orderRepository.findById(itemA.getId())
            .orElseThrow(NotFoundException::new);
    assertThat(order.getMember().getName()).isEqualTo("아요니");
    assertThat(itemA.getQuantity()).isEqualTo(990);  //1000-10 = 990
}

'Trouble Shooting' 카테고리의 다른 글

[Spring Security] JWT 토큰이 계속 헤더에서 사라지는 오류 (임시(?) 해결)  (0) 2024.06.26
[Spring Boot 프로젝트] 주문 중 재고 부족 오류  (0) 2024.05.24
[EC2] SSH - Host key verification failed.  (0) 2024.05.20
[Spring Security 오류] 권한 접근 설정이 제대로 적용되지 않는 오류  (0) 2024.05.19
'Trouble Shooting' 카테고리의 다른 글
  • [Spring Security] JWT 토큰이 계속 헤더에서 사라지는 오류 (임시(?) 해결)
  • [Spring Boot 프로젝트] 주문 중 재고 부족 오류
  • [EC2] SSH - Host key verification failed.
  • [Spring Security 오류] 권한 접근 설정이 제대로 적용되지 않는 오류
wool_
wool_
wool_
나만의 자산
wool_
전체
오늘
어제
  • 분류 전체보기
    • log.info
    • Project
    • TIL
    • 알고리즘
    • 회고
    • Trouble Shooting
    • 기타

블로그 메뉴

  • 🍀 Github
  • 📃 Notion

공지사항

인기 글

태그

개발자포트폴리오
retry
Refresh Token
취리코
개발자취업
취업리부트코스
개발자포트포리오
docker-compose
회복 탄력성
개발자이력서
redis
Trouble Shooting
Til
코딩테스트
스택
jwt
바인드 마운트
정렬
docker
spring boot
리팩토링
Spring Security
브루트포스
resilience4j
구현
개발자취준
이분 탐색
그리디 알고리즘
volume
항해99

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.3
wool_
[Java, Spring] 주문 로직 중 NullPointerException 해결
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.