[typeorm] TypeORM Query Builder

김민재·2025년 4월 20일

typeorm

목록 보기
6/8

🤠 Typeorm Query Builder

  • SQL 쿼리를 타입 안정성과 자동 완성 기능을 활용해 작성할 수 있게 해주는 도구이다. 복잡한 쿼리나 조건부 쿼리 등을 만들 때 주로 사용된다.

🚒 사용 예시

GetAll

  // 여러 개의 무비 가져오기
  async getMovies(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();
  }
  • qb: leftJoin을 이용해서 데이터를 가져온다.

GetOne

  // 하나의 무비 가져오기
  async getMovie(id: number): Promise<Movie> {
    const movie = await this.movieRepository
      .createQueryBuilder('movie')
      .leftJoinAndSelect('movie.director', 'director')
      .leftJoinAndSelect('movie.genres', 'genres')
      .where('movie.id = :id', { id })
      .getOne();

    if (!movie) {
      throw new NotFoundException('존재하지 않는 영화입니다.');
    }

    return movie;
  }
  • where(가져올 변수 이름 지정)
  • getOne() 하나를 가져온다.

공식문서: https://orkhan.gitbook.io/typeorm/docs/select-query-builder#joining-relations

profile
개발 경험치 쌓는 곳

0개의 댓글