[트러블슈팅] 엔티티 연관관계에서 @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<>();