DevBoi

[NestJs] QueryBuilder 본문

Develop/[NestJs]

[NestJs] QueryBuilder

HiSmith 2023. 7. 9. 00:20
반응형

queryBuilder를 간략하게 썼었다. 근데 조금 더 심화를 써보자

 

1) 조인되는 엔티티가 여러개이다.

2) 조인되는 엔티티중 원하는 값만 가져오자

3) 각 조인되는 엔티티는 마스터 이외에는 left조인으로 해보자 or innerJoin으로 해보자

 

해당 조건을 충족하는 쿼리빌더는 아래와 같다.

async getCart(id: string): Promise<Cart[]> {
    const result = await this.cartRepository.createQueryBuilder('cart')
    .innerJoin(Food,'food','food.id=cart.foodId')
    .innerJoin(Member,'member','member.id=cart.memberId')
    .select
    (['food.id','food.name',
    'member.id',
    'cart.id'])
    .where('cart.memberId = :id',{id: id})
    .getRawMany();
    console.log(result);
    return result;
  }

 

나는 select 문이 많아 질 것을 예상해서, 해당 문을 개행으로 구분했고,

위에 이너조인으로 각각 엔티티를 묶었고, 마지막 where로 마스터 엔티티의 조건을 추가했다.

해당 과 같이 하면, 아래 결과가 나온다.

 

 

해당 원하는 값들을 이제 자유자재로 사용할 수 있다.

반응형