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

변지수23님의 프로필 이미지

작성한 질문수

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

연관관계 편의 메서드

20.07.04 11:51 작성

·

198

0

안녕하세요, 영한님

강의에선

위처럼 하셨는데 궁금한게 생겨 질문드립니다.

1. 위 대신에 아래처럼 Member 엔티티에 연관관계 메서드를 해도 되나요?

public void addOrders(Order order){
this.orders.add(order);
order.setMember(this);
}

2. 연관관계의 주인에 편의 메서드를 하는게 좋은건가요?

3. 둘다 작성하면 안되나요?

감사합니다.

답변 1

1

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

2020. 07. 05. 18:57

안녕하세요. 변지수님^^ 좋은 질문입니다.

1. 위 대신에 아래처럼 Member 엔티티에 연관관계 메서드를 해도 되나요?

-> 네 어느곳에 두어도 괜찮습니다. 단 비즈니스 로직을 작성할 때 Order와 Member가 있으면 보통 Order 객체를 생성하고, 그곳에 필요한 값을 설정하는 것이 더 이해하기 쉽기 때문에 이 경우는 Order에 작성하는 것이 좋습니다.

2. 연관관계의 주인에 편의 메서드를 하는게 좋은건가요?

아닙니다^^ 연관관계 편의 메서드는 보통 비즈니스 로직에서 중심이 되는 엔티티에서 사용하는게 좋습니다. 주문과 회원의 관계에서는 주문이 중심이 됩니다.

3. 둘다 작성하면 안되나요?

기술적으로는 가능하지만 권장하지 않습니다. 다른 개발자들은 개발자가 둘중 어떤 메서드를 호출해야 할지 혼란스러울 꺼에요. 그리고 무한 양방향 루프를 조심하세요^^

감사합니다.