Query Builder

[ What is QueryBuilder ]

  • QueryBuilder는 Typeorm의 가장 강력한 기능 중 하나이다.
  • SQL문을 대신하는 문법으로, 쿼리를 실행하고 / 자동으로 변환된 Entity를 얻을 수 있다.

1️⃣ QueryBuilder를 사용한 간단한 Typeorm 예시

const firstUser = await connection
			.getRepository(User)
			.createQueryBuilder("user")
			.where("user.id = :id", {id: 1})

2️⃣ 변환된 sql문 형태

select 
	user.id,
    	user.firstName,
    	user.lastName
 from userTable as user
 where user.id = 1;

3️⃣ 쿼리를 적용하여 변환된 Entitry 반환값

User {
	id: 1,
    	firstName: "Hong",
    	lastName: "NyungKi"
}

[ Important note when using the QueryBuilder ]

QueryBuillder사용시 where절에는 반드시 고유한 매개변수명을 작성하도록 한다.

const result = await getConection()
			.createQueryBuilser('user')
			.leftJoinAndSelect

[ How to create and use a QueryBuilder ]

QueryBuilder를 만드는 방법 1️⃣ : getConnection()메소드 호출

import {getConnection} from "typeorm";

const user = await getConnection()
			.createQueryBuilder()
			.select("user")
			.from(User, "user")
			.where("user.id = :id", { id: 1 })
			.getOne();

QueryBuilder를 만드는 방법 2️⃣ : Entity manager()메소드 호출

import {getManager} from "typeorm";

const user = await getRepository(User)
			.createQueryBuilder()
			.select("user")
			.from(User, "user")
			.where("user.id = :id", { id: 1 })
    			.getOne();

좋은 웹페이지 즐겨찾기