@Builder 주의사항 - JPA

Jiwon Park·2023년 5월 31일
0
 //양방향 맵핑시 연관관계 편의 메소드
 	public void addMember(Member member) {
        this.member = member;
        member.getOrders().add(this);
    }

문제: Member 클래스에서 private List orders = new ArrayList<>();로 초기화를 했지만
member.getOrders()에 null이 들어갔고 그 상태에서 add(this)를 호출하여NullPointerException 발생

원인: @Builder 어노테이션을 사용한 경우, 롬복은 필드 초기화를 처리하지 않는다.

해결: Member 클래스의 빌더 생성자에서 따로 처리

	@Builder
    public Order(Long id, Member member, List<OrderItem> orderItems, Delivery delivery, LocalDateTime orderDate, OrderStatus status) {
        this.id = id;
        this.member = member;
        this.orderItems = orderItems != null ? orderItems : new ArrayList<>();
        this.delivery = delivery;
        this.orderDate = orderDate;
        this.status = status;
    }
profile
안녕하세요

0개의 댓글