You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用QueryBuilder从TypeORM关联表中指定查询字段?

解决方案

可以不用QueryBuilder,通过find方法的select选项指定所需字段,再手动转换结果结构来实现需求:

// 指定查询所需字段
const areas = await this.areaRepository.find({
  where: { ...isActive },
  relations: ["division"],
  select: {
    id: true, // 仅查询Area的id字段
    division: {
      id: true // 仅查询关联Division的id字段
    }
  }
});

// 转换结果结构,重命名关联字段
const formattedResult = areas.map(item => ({
  id: item.id,
  division_id: item.division.id
}));

说明

TypeORM的find方法本身不支持直接给关联实体的字段设置别名,所以需要在查询完成后手动映射结果,把division.id重命名为division_id。这种方式既避免了使用QueryBuilder,也能精准获取所需字段,减少不必要的数据传输。

内容的提问来源于stack exchange,提问作者Kazi Akib Javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:10:28