TypeORM选择关系ID

时间:2020-06-06 10:51:12

标签: typeorm

我正在尝试选择关系user.skill.id的ID。这是与连接表的多对多关系。我该如何设置?

我的TypeOrm语句如下:

  async getUsers(): Promise<User[]> {
    // const users = await this.userRepository.find({ relations: ['skills'] });
    const users = await this.userRepository.find({
      select: ['id'],
      relations: ['skills'],
    });
    console.log(users);
    return users;
  }

结果如下:

[
  User { id: 4, skills: [ [Skill] ] },
]

但是我想要这样:

[
  User { *all props*, skills: [ 6 ] }
]

小更新:

我发现此解决方案仅返回技能对象中的ID,但我希望将其作为技能ID数组:

const users = await this.userRepository
      .createQueryBuilder('user')
      .leftJoin('user.skills', 'skills')
      .addSelect(['skills.id'])
      .getMany();

最终更新:

我找到了解决方法:

const users = await this.userRepository
      .createQueryBuilder('user')
      .leftJoin('user.skills', 'skills')
      .loadAllRelationIds()
      .getMany();

0 个答案:

没有答案