😸

TypeORMのQueryBuilderで条件付きメソッドチェーン

2020/12/03に公開

やりたいこと

メソッドチェーンで QueryBuilder を構築するとき、条件付きで where を追加するのって
見通しよくかけないか?

現状

searchQuery = repository
  .createQueryBuilder("member")
  .innerJoinAndSelect("member.age", "age");

if (status) {
  searchQuery = searchQuery.andWhere("status = :status", { status });
}

結論

.andWhere(status ? `status = :status` : '1=1', { status })

https://github.com/typeorm/typeorm/issues/3103#issuecomment-490805889

Discussion