我正在尝试选择关系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();