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

+ Recent posts