• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

querydsl에서 oneToMany 관계인데 Many쪽 검색이 필요할 때 어떻게 해야하나요?

23.03.10 17:05 작성 23.03.13 15:25 수정 조회수 701

0

예를 들어 Order와 OrderItem이 있는데 Order의 검색을 동적쿼리로 검색해야해서 querydsl을 사용하고 있는 상황입니다. 그 중 검색조건이 OrderItem의 이름으로 검색해서 Order의 목록을 가져와야하는데 Order와 OrderItem을 조인하고 where절에 OrderItem의 이름으로 조회하는 방법 말고는 없을까요? 그럴 경우 distinct를 쓰거나 따로 중복 제거 로직을 넣어야해서ㅜ 혹시 다른 방법이 있나 문의드립니다.

이런 경우에는 양방향 연관관계를 맺어주고 해결해도 될까요?

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2023.03.13

안녕하세요, 조원진 님! 공식 서포터즈 codesweaver 입니다.

저라면 쿼리를 두 번 나눠서 사용할 것 같습니다.

OrderItem 에 쿼리 한 후 OrderItem 이 가지고 있는 주문번호를 중복제거 하여 조회하고,

이를 다시 Order 에 조회하면 인덱스를 십분 활용하며 사이드 이펙트를 줄일 수 있을 것 같습니다.

감사합니다.

조원진님의 프로필

조원진

질문자

2023.03.14

감사합니다. 이 방식은 근데 QClass로는 불가능하고 jpaRepository를 이용해서 하는 방식을 말씀하시는거죠?