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

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

에어님의 프로필 이미지
에어

작성한 질문수

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

도메인 모델과 테이블 설계

주문상품 양방향

해결된 질문

작성

·

62

0

주문상품과 주문은 다대일 양방향인데

주문상품과 상품은 다대일 단방향으로 하셨는데

첫번째는 양방향으로 설정하신 이유가 뭘까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 에어님.

JPA 관련 질문을 해주셨네요. 주문 상품과 주문 간의 연관관계를 양방향으로 설정한 이유와, 주문 상품과 상품 간의 연관관계를 단방향으로 설정한 이유에 대해 고민하셨군요.

1. 주문상품과 주문의 양방향 설정 이유

양방향 연관관계는 주로 두 엔티티 간의 관계를 서로 참조할 필요가 있을 때 사용됩니다.

  • 주문(Order): 주문 입장에서는 자신이 가진 모든 주문 상품(OrderItem)을 참조해야 할 필요가 있습니다.
  • 주문상품(OrderItem): 주문상품 입장에서도 자신이 속한 주문을 참조하여 관련 정보를 활용해야 할 때가 있습니다.

이러한 이유로 양방향 관계를 설정함으로써 두 엔티티 간의 데이터 접근을 용이하게 할 수 있습니다.

2. 주문상품과 상품의 단방향 설정 이유

원래 단방향 연관관계는 한 방향으로만 참조가 필요할 때 설정됩니다.

  • 주문상품(OrderItem): 여기서 주문상품은 특정 상품(Item)을 참조하지만, 상품은 자신이 어떤 주문상품에 포함되어 있는지 알 필요가 없습니다.
  • 상품(Item): 상품은 다양한 주문상품에서 참조될 수 있지만, 그 정보가 상품 자체의 로직에서는 불필요할 가능성이 큽니다.

이러한 구조는 관계를 단순화하고, 불필요한 데이터 로딩을 피할 수 있는 장점이 있습니다.

관련된 이해를 돕기 위한 기존 답변을 찾았습니다:

위 게시글에서 다양한 연관관계 설정 방법들에 대해 설명하고 있으니 참고하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

에어님의 프로필 이미지
에어

작성한 질문수

질문하기