typescript - where(property IN array) 在 typeorm 查询生成器中如何工作?
问题描述
我需要使用查询生成器通过 id 数组过滤实体的 id。
这是代码:
await this._productRepo
.createQueryBuilder('Product')
.where('Product.id IN (:...ids)', { ids: [1, 2, 3, 4] })
这是此查询生成的 sql:
SELECT [*FIELDS*] WHERE ( `Product`.`id` IN ? ) AND ( `Product`.`deletedAt` IS NULL )
这是一个代码示例,我在 typeorm 的文档中找到,但我不明白为什么会有 ? 在 sql 中,而不是 id 列表。
我需要查询生成器,因为下一步是过滤连接表的 id,所以我不能使用存储库方法。
解决方案
解决了。
上面的查询生成器语法有效。问题出在我的回购代码的另一部分。
如果有人似乎有类似的问题,请检查您的所有代码,getSql() 报告的事实:
WHERE ( `field`.`property` IN ? )
是“正常的”,我认为是因为 typeorm 的开发人员不想打印所有数组的值。
推荐阅读
- android - 如何将参数传递给视图模型?
- c++ - 为什么在 c++ 模板中使用 typename 或 class 关键字?
- android - java.lang.UnsatisfiedLinkError:dlopen 失败:找不到库“/system/app/p2p_app/p2p_app.apk!/lib/armeabi-v7a/libnjingle_peerconnection_so.so”
- python - 字典列表的统计信息
- php - 计算具有相同值的总行数,并回显行值的值
- typescript - TS 不工作的猫鼬中间件中的“this”和“next”
- angular - 离子角日历组件
- c# - IIS 10下的web_Config文件配置
- node.js - 我在 gulp 服务后发现了这个
- swift - SwiftUI 截断 ForEach 的内容