인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

dev.taeyeong님의 프로필 이미지
dev.taeyeong

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리

양방향 연관관계 없이 비즈니스 로직을 작성하는데 질문 있습니다.

작성

·

238

0

  • - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
  • - 먼저 유사한 질문이 있었는지 검색해보세요.
  • - 서로 예의를 지키며 존중하는 문화를 만들어가요.
  • - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요 영한님 강의 잘 듣고 있습니다!

Order 엔티티와 OrderItem 엔티티를 양방향 매핑 했을 때, 강의에서 보여주신 것과 같이 엔티티 안에 비즈니스 로직을 작성할 수 있었습니다.

    //== 조회 로직 ==//
    /**
     * 전체 주문 가격 조회
     */
    public int getTotalPrice() {
        int totalPrice = 0;
        for (OrderItem orderItem : orderItems) {
            totalPrice += orderItem.getTotalPrice();
        }
        return totalPrice;
    }

 

그런데 OrderItem에서 Order로 다대일 단방향 매핑만 했을 때는 service에서 

// 주문의 총 가격 조회
List<OrderItem> orderItemList = orderItemRepository.findByOrderId(orderId);

int totalPrice = 0;
        
for (OrderItem orderItem : orderItemList) {
    totalPrice += orderItem.getTotalPrice(); 
}

이런식으로 작성을 해야할 것 같은데 맞을까요?

 

그리고 이런 상황에서 선택을 하신다면 단방향 매핑을 양방향 매핑으로 바꾸시는지 아니면 다른 방법을 사용하시는지 궁금합니다!

답변 1

0

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

안녕하세요. dev.taeyeong님

이 부분은 딱 정답이 있다기 보다는 각각 트레이드 오프가 필요하기 때문에 전체 코드와 비즈니스 상황에 따라서 선택을 할 것 같아요.

감사합니다.

dev.taeyeong님의 프로필 이미지
dev.taeyeong

작성한 질문수

질문하기