typeorm(v0.3.20)中:查询:
.leftJoinAndSelect('smaComboModule.parent', 'parent')
这里查询添加到结果是:
parent: [SMAComboModule],
我想要修改查询结果为:parentId, xxx
(xxx是[SMAComboModule]实例的id)
目前查询出是: parent: [实例]
但是想要变成: parentId: 实例.id
请问如何在查询语句中做到呢?
typeorm(v0.3.20)中:查询:
.leftJoinAndSelect('smaComboModule.parent', 'parent')
这里查询添加到结果是:
parent: [SMAComboModule],
我想要修改查询结果为:parentId, xxx
(xxx是[SMAComboModule]实例的id)
目前查询出是: parent: [实例]
但是想要变成: parentId: 实例.id
请问如何在查询语句中做到呢?
要在 TypeORM 中修改查询语句以实现将 `SMAComboModule` 实例的 `id` 作为 `parentId` 以及其他属性(例如 `xxx`)的形式添加到查询结果中,你可以使用 `.select()` 方法来明确指定你想要选择的字段,并通过 `.addSelect()` 方法添加其他相关字段。此外,你可以使用别名(alias)来重命名字段。
假设 `SMAComboModule` 实体有一个名为 `id` 的主键字段和一个名为 `xxx` 的其他字段,你可以按照以下方式修改你的查询:
import { getRepository } from 'typeorm';
// 假设你正在某个服务或控制器中执行这个查询
getRepository(YourEntity)
.createQueryBuilder('yourEntityAlias')
.leftJoinAndSelect('yourEntityAlias.smaComboModule.parent', 'parent')
.select('yourEntityAlias.id AS yourEntityId') // 选择你的主实体的id,并为其指定别名
.addSelect('parent.id AS parentId') // 选择parent的id,并为其指定别名parentId
.addSelect('parent.xxx AS parentXxx') // 选择parent的xxx字段,并为其指定别名parentXxx
.getMany();
在这个查询中:
- `yourEntityAlias` 是你的主实体的别名。
- `parent` 是通过左连接 `smaComboModule.parent` 引入的别名。
- `select` 和 `addSelect` 方法用于明确指定你想要选择的字段,并为它们指定别名。
这样,你的查询结果将包含 `yourEntityId`, `parentId`, 和 `parentXxx`,其中 `parentId` 是 `SMAComboModule` 实例的 `id`,`parentXxx` 是该实例的 `xxx` 字段。
确保替换 `YourEntity` 和其他别名以匹配你的实际实体和字段名称。
6 回答5.2k 阅读✓ 已解决
9 回答9.5k 阅读
3 回答10.5k 阅读✓ 已解决
4 回答7.4k 阅读
5 回答8.3k 阅读
2 回答10.4k 阅读✓ 已解决
2 回答6.6k 阅读✓ 已解决
使用 select 方法来选择 smaComboModule 和 parent.id,并将其别名为 parentId。