반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JPA
- JPA공부
- 자바공부
- 프로그래머스
- 스프링 공부
- 플러터 공부
- querydsl
- 스프링공부
- Kafka
- 플러터 개발
- 스프링부트공부
- JPA예제
- JPA 공부
- nestjs스터디
- 스프링
- 카프카
- 알고리즘공부
- Axon framework
- nestjs
- 코테준비
- JPA스터디
- 스프링부트
- 기술면접공부
- 기술공부
- 코테공부
- Flutter
- K8S
- nestjs공부
- 자료구조공부
- DDD
Archives
- Today
- Total
DevBoi
[NestJs] QueryBuilder 본문
반응형
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로 마스터 엔티티의 조건을 추가했다.
해당 과 같이 하면, 아래 결과가 나온다.
해당 원하는 값들을 이제 자유자재로 사용할 수 있다.
반응형
'Develop > [NestJs]' 카테고리의 다른 글
[NestJs] TypeOrm 0.2 -> 0.3 버전 변경 (0) | 2023.08.20 |
---|---|
[NestJs] AuthGuard 전략 복수개 적용하기 (0) | 2023.07.04 |
[NestJs] 매핑 테이블 엔티티 생성 및 사용 (0) | 2023.07.03 |
[NestJs] 암호화 모듈 (0) | 2023.07.03 |
[NestJs] Custom Pipeline 만들어보기 (0) | 2023.07.02 |