[트러블슈팅] 엔티티 연관관계에서 @Builder - f-lab-edu/jshop GitHub Wiki

문제

연관관계에 있는 엔티티 컬렉션 필드 (@OneToMany 등) 의 필드가 있는 엔티티에서 @Builder 를 사용중 경고가 나왔다.

jshop/domain/order/entity/Order.java:57: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.
    private List<OrderProductDetail> productDetails = new ArrayList<>();

@Builder 는 기본 생성자를 초기화 표현식을 무시한다는 것.

해결

경고에 나온대로 @Builder.Default 로 기본 필드를 설정해주고 변경이 없을 필드이므로 final 로 안전하게 설정해줬다.

@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
@Builder.Default
private final List<OrderProductDetail> productDetails = new ArrayList<>();