인프런 커뮤니티 질문&답변

윤수정님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 설계시 주의점

엔터티 설게시 주의점 setter 리팩토링

23.02.15 19:47 작성

·

482

1

안녕하세요! 영한님 강의 질 좋은 강의 너무 감사하게 보고 배우고 있습니다!

다름이 아니라, 엔터티 설계시 주의점 강의에서

setter를 사용하지 않기위해서 엔터티 설정을 아래와 같이 코드 수정을 해보았는데 이렇게 하는 게 더 안전한 방법인가요?? 실무에서도 이렇게 사용하는지 매우 궁금합니다..!

Order 엔터티

public class Order{

    ...
    public void addOrderItem(OrderItem orderItem){
        orderItems.add(orderItem);
//        orderItem.setOrder(this);
        OrderItem.builder()
                .order(this)
                .build();
    }

    public void setDelivery(Delivery delivery){
        this.delivery = delivery;
//        delivery.setOrder(this);
        Delivery.builder()
                .order(this)
                .build();
    }
}

 

OrderItem 엔터티

...
@NoArgsConstructor
public class OrderItem {
    ...
    @Builder
    public OrderItem(Order order){
        this.order = order;
    }
}

 

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2023. 02. 18. 13:21

안녕하세요. 윤수정님

setter보다는 생성자나 빌더를 사용할 수 있다면 그것이 더 나은 방법입니다.

물론 어쩔 수 없이 setter를 제공해야 하는 경우에는 setter를 제공해야 합니다.

감사합니다.