[Spring] @Builder 패턴 사용 시 List 에서 NullPointerException

민스킴·2024년 4월 22일
0

Spring

목록 보기
7/12

사건 배경

어느 때와 같이 평화롭게 코딩중이였습니다.
평소와 같이 1:N의 관계 Entity를 생성하고, @OneToMany 어노테이션을 사용해서 양방향 관계를 매핑 하였습니다.
그리고 null 방지를 위해서 해당 List를 new ArrayList<>()로 미리 초기화를 해주었는데....!

짜란 NullPointerException이 발생하였습니다~

이유를 찾다보니 다음과 같은 해당 List가 Null 상태인 것을 발견했고, 원인을 찾았습니다.
바로 @Builder 어노테이션을 사용한 builder 패턴 사용이 문제였습니다.

원인

해결

@Builder.Default

매번 빌더 사용시 List 필드를 초기화 해주는 것은 번거롭기 때문에, @Builder.Default 어노테이션을 사용하면 해결할 수 있습니다.

예시

@Builder
@ToString
public class Member {
    String id;
    
    @Builder.Default 
    private List<Integer> testList = new ArrayList<>();
}

위와 같이 어노테이션을 사용해서 필드를 초기화하면 편하게 빌더를 사용할 수 있습니다.

profile
Boys, be ambitious!

0개의 댓글