如何不使用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
相关产品推荐
相关产品推荐

