🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

JPA 연관관계 질문드립니다.

21.03.25 03:24 작성 조회수 348

0

안녕하세요.

JPA 강의를 듣고 연관관계부분 실습해보다 질문드립니다.

다대다 관계는 실무에서 사용하지 않는게 좋다고 하셔서

직접 중간테이블을 만들고 카테고리테이블, 카테고리_아이템 테이블, 아이템 테이블을 만들어

아래와 같이 구현해보려 했습니다.

간단히 엔티티 코드를 요약해보았습니다.

카테고리를 눌렀을 때  해당 카테고리에 Item 리스트를 불러오고

각각의 Item들에서도 카테고리 정보를 노출하고싶은데

어떻게 해야 할지 감이 잡히질 않습니다.

categoryItem의 Repository에서 쿼리문으로 조인하여 가져오는것은 매우 복잡할것같고

Item이나 Category의 엔티티 안에 메서드를 만들어서 가져와보려했는데

제 기본기가 부족해서 그런지 도저히 방법이 떠오르질 않네요.

어떤식으로 구현을 해야좋을지

대략적인 흐름을 간단히 조언해주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 우진님

JPQL을 대략 다음과 같이 작성하시면 됩니다.

결국 CategoryItem부터 접근하는 것이 가장 좋은 방법입니다.

select item from CategoryItem cateItem

join cateItem.item as item

where category = :category

추가로 학습중인 JPA 기본편에 이런 궁금증을 해결할 수 있는 키가 많으니 꼭 완강해주세요^^!

감사합니다.

warscodev님의 프로필

warscodev

질문자

2021.03.25

친절한 답변 감사합니다!

완강 후에 다시 실습해보겠습니다^^

<button class="ac-button is-md is-outlined is-white button-rounded comment__like e-like" data-id="101235" data-domain="comment" style="margin:0px;font-family:'Noto Sans KR', -apple-system, system-ui, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', Helvetica;display:inline-flex;align-items:center;justify-content:center;border-radius:100px;cursor:pointer;appearance:none;padding:11px;height:40px;line-height:1.43;font-size:14px;letter-spacing:-0.3px;color:#1b1c1d;background-color:#ffffff;min-width:75px;border:1px solid #dee2e6"><svg width="16" height="16" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path fill="#1B1C1D" fill-rule="evenodd" clip-rule="evenodd" d="M4.49095 2.66666C3.10493 2.66666 1.66663 3.92028 1.66663 5.67567C1.66663 7.74725 3.21569 9.64919 4.90742 11.0894C5.73796 11.7965 6.571 12.3653 7.19759 12.7576C7.51037 12.9534 7.7704 13.1045 7.95123 13.2061C7.96818 13.2156 7.98443 13.2247 7.99996 13.2333C8.01549 13.2247 8.03174 13.2156 8.04869 13.2061C8.22952 13.1045 8.48955 12.9534 8.80233 12.7576C9.42892 12.3653 10.262 11.7965 11.0925 11.0894C12.7842 9.64919 14.3333 7.74725 14.3333 5.67567C14.3333 3.92028 12.895 2.66666 11.509 2.66666C10.1054 2.66666 8.9751 3.59266 8.4743 5.09505C8.40624 5.29922 8.21518 5.43693 7.99996 5.43693C7.78474 5.43693 7.59368 5.29922 7.52562 5.09505C7.02482 3.59266 5.89453 2.66666 4.49095 2.66666ZM7.99996 13.8018L8.22836 14.2466C8.08499 14.3202 7.91493 14.3202 7.77156 14.2466L7.99996 13.8018ZM0.666626 5.67567C0.666626 3.368 2.55265 1.66666 4.49095 1.66666C6.01983 1.66666 7.25381 2.48414 7.99996 3.73655C8.74611 2.48414 9.98009 1.66666 11.509 1.66666C13.4473 1.66666 15.3333 3.368 15.3333 5.67567C15.3333 8.22121 13.4657 10.3823 11.7407 11.8509C10.863 12.5982 9.98767 13.1953 9.33301 13.6052C9.00516 13.8104 8.73133 13.9696 8.53847 14.0779C8.44201 14.1321 8.36571 14.1737 8.31292 14.2019C8.28653 14.2161 8.26601 14.2269 8.25177 14.2344L8.2352 14.2431L8.23054 14.2455L8.22914 14.2462C8.22897 14.2463 8.22836 14.2466 7.99996 13.8018C7.77156 14.2466 7.77173 14.2467 7.77156 14.2466L7.76938 14.2455L7.76472 14.2431L7.74815 14.2344C7.73391 14.2269 7.71339 14.2161 7.687 14.2019C7.63421 14.1737 7.55791 14.1321 7.46145 14.0779C7.26858 13.9696 6.99476 13.8104 6.66691 13.6052C6.01225 13.1953 5.13695 12.5982 4.25917 11.8509C2.53423 10.3823 0.666626 8.22121 0.666626 5.67567Z"></path></svg>0</button>

네 우진님 화이팅^^!

채널톡 아이콘