swa*_*tij 5 typescript typeorm nestjs
我发现了 typeorm 的这种奇怪行为,即如果 FIND 查询(find、findOne、findBy 等)的 WHERE 子句的条件中的属性未定义,那么它的行为就像一个真实的条件并返回记录(findOne 的第一条记录)以及查找的所有记录)。
我知道可以使用验证器或 IF 语句来检查未定义的属性来防止这种情况,但除此之外,我想知道 typeorm 本身处理它的直接方法。
这是我正在做的事情:
const client = await this.clientRepository.findOne({
where: {
id: payload.clientId //undefined
}
});
Run Code Online (Sandbox Code Playgroud)
我获得了客户端表的第一条记录,即使 clientId 未定义。
小智 4
这是一个已知的问题
使用 typeORM 本身最简单的解决方案是使用Equal()typeORM 的函数。
const client = await this.clientRepository.findOne({
where: {
id: Equal(payload.clientId)
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |