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

公開:2020/12/03
更新:2020/12/04
1 min読了の目安(約500字TECH技術記事

やりたいこと

メソッドチェーンで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