- 如何创建和使用
QueryBuilder
如何创建和使用QueryBuilder
有几种方法可以创建Query Builder:
使用 connection:
import { getConnection } from "typeorm";const user = await getConnection().createQueryBuilder().select("user").from(User, "user").where("user.id = :id", { id: 1 }).getOne();
使用 entity manager:
import { getManager } from "typeorm";const user = await getManager().createQueryBuilder(User, "user").where("user.id = :id", { id: 1 }).getOne();
使用 repository:
import { getRepository } from "typeorm";const user = await getRepository(User).createQueryBuilder("user").where("user.id = :id", { id: 1 }).getOne();
有 5 种不同的QueryBuilder类型可用:
SelectQueryBuilder- 用于构建和执行SELECT查询。 例如:import { getConnection } from "typeorm";const user = await getConnection().createQueryBuilder().select("user").from(User, "user").where("user.id = :id", { id: 1 }).getOne();
InsertQueryBuilder- 用于构建和执行INSERT查询。 例如:import { getConnection } from "typeorm";await getConnection().createQueryBuilder().insert().into(User).values([{ firstName: "Timber", lastName: "Saw" }, { firstName: "Phantom", lastName: "Lancer" }]).execute();
UpdateQueryBuilder- 用于构建和执行UPDATE查询。 例如:import { getConnection } from "typeorm";await getConnection().createQueryBuilder().update(User).set({ firstName: "Timber", lastName: "Saw" }).where("id = :id", { id: 1 }).execute();
DeleteQueryBuilder- 用于构建和执行DELETE查询。 例如:import { getConnection } from "typeorm";await getConnection().createQueryBuilder().delete().from(User).where("id = :id", { id: 1 }).execute();
RelationQueryBuilder- 用于构建和执行特定于关系的操作[TBD]。
你可以在其中切换任何不同类型的查询构建器,一旦执行,则将获得一个新的查询构建器实例(与所有其他方法不同)。
