728x90
- 예시
async findAll(title?: string) {
const qb = this.movieRepository
.createQueryBuilder('movie')
.leftJoinAndSelect('movie.director', 'director')
.leftJoinAndSelect('movie.genres', 'genres');
if (title) {
qb.where('movie.title LIKE :title', { title: `${title}` });
}
return await qb.getManyAndCount();
}
조건에 맞춰 쿼리 추가 가능
- select
const moive = await this.movieRepository
.createQueryBuilder()
.select('movie')
.from(Movie, 'movie')
.leftJoinAndSelect('movie.detail', 'detail')
.leftJoinAndSelect('movie.director', 'director')
.leftJoinAndSelect('movie.genres', 'genres')
.where('movie.id = :id', { id: 1 })
.getOne();
- joinandselect 뒤는 from에서 쓴거처럼 대신 쓰는 이름 설정
- 'movie.id = :id', { id: 1 } => 변수 집어넣기
- Insert
await this.movieRepository
.createQueryBuilder()
.insert()
.into(Movie)
.values([
{
title: 'New Movie',
genres: 'Action',
director: director,
genres: genres,
},
])
.execute();
- Update
await this.movieRepository
.createQueryBuilder()
.update(Movie)
.set({ title: 'Update Title', genres: 'Drama' })
.where('id = :id', { id: 1 })
.execute();
- Delete
await this.movieRepository
.createQueryBuilder()
.delete()
.from(Movie)
.where('id = :id', { id: 1 })
.execute();
- Relations
await this.movieRepository
.createQueryBuilder()
.relation(Movie, 'genres')
.of(1) // Movie id
.loadMany();
나머지는 아래 있는것들인데 필요하면 강의에서 보자.
- getOne(), getMany(), select()
- where()
- orderBy()
- skip(), take()
- join()
- Aggregation = 요약. ex) COUNT
- Subquery
https://fastcampus.co.kr/classroom/239666
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
728x90
'코딩 > TypeORM' 카테고리의 다른 글
Transaction (1) | 2024.10.22 |
---|---|
통계 (0) | 2024.10.22 |
Methods (0) | 2024.10.15 |
Find Options (0) | 2024.10.15 |
Relationship (0) | 2024.10.15 |