어느 때와 같이 평화롭게 코딩중이였습니다.
평소와 같이 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<>();
}
위와 같이 어노테이션을 사용해서 필드를 초기화하면 편하게 빌더를 사용할 수 있습니다.