[英]Optional parameter in TypeORM queryBuilder
是否可以在createQueryBuilder
中使用可选参数?
例如,我有这个代码:
let users = await this.conn
.getRepository(UserEntity)
.createQueryBuilder("user")
.where("user.firstName LIKE :search", { search: dto.search })
.getMany();
我的可选参数是search
,我想启动子句.where
仅当dto.search
不是 null 时,但当他是 null 然后应该跳过这个函数( where
)并转到getMany
。
有人知道怎么做吗?
尝试这个:
let users = await this.conn.getRepository(UserEntity)
.createQueryBuilder('user')
.where(search !== null ?
'user.firstName LIKE :search': 'TRUE', {search: dto.search})
.getMany();
或者没有“Where TRUE”的另一种方法是:
let users = this.conn.getRepository(UserEntity)
.createQueryBuilder('user');
users = search !== null ? users.where('user.firstName LIKE :search',{search: dto.search}) : users
users = await users.getMany();
const query = this.conn
.getRepository(UserEntity)
.createQueryBuilder("user");
// Optionally add where condition
if(dto.search){
query.where("user.firstName LIKE :search", { search: dto.search })
}
// run query
let users = await query.getMany();
请注意会使 if 语句出错的虚假值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.