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

OMG님의 프로필 이미지
OMG

작성한 질문수

실전! Querydsl

질문있습니다.

해결된 질문

작성

·

124

0

영한님 안녕하세요. 

 개인 프로젝트에 querydsl을 적용해서 진행하고 있는데, 막히는 부분이 있어서 해당 부분에 대해 질문 드립니다.

실전1편의 도메인 모델, 테이블 설계를 참고하여 진행하고 있습니다.(회원<->주문<->주문상품<->상품<->카테고리)

상품을 검색하면 제가 구매 목록(order)에 존재하는 아이템은 필터링하려는 코드를 구현하려고 하는데 잘 안되네요..

파라미터로 검색한 상품 이름(검색어), 회원ID로 받을 때,  List<Item> 을 리턴하는 select쿼리 코드를 어떻게 구현하면 좋을까요..?

답변 1

1

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

안녕하세요. OMG님

우선 저라면 쿼리를 2개로 나눌 것 같아요.

1. 먼저 해당 고객이 주문한 상품 ID를 컬렉션으로 뽑고

2. 상품을 조회할 때 not in(상품id 컬렉션)  같은 식으로 해결할 것 같습니다.

이걸 기본으로 쿼리를 1개로 만들려면 다음과 같이 서브쿼리를 사용하면 될 것 같아요.

select item i where ... not in (select o.itemId from order o)

도움이 되셨길 바래요^^

OMG님의 프로필 이미지
OMG

작성한 질문수

질문하기