【发布时间】:2021-01-08 00:15:43
【问题描述】:
我有 3 个表如下:
-
用户:
id -
家庭:
id -
家庭用户:
familyId | userId
我有这些关系:
// User
@OneToMany(() => FamilyUser, (familyUser) => familyUser.user)
familyUsers: FamilyUser[];
// Family
@OneToMany(() => FamilyUser, (familyUser) => familyUser.family)
familyUsers: FamilyUser[];
// FamilyUser
@ManyToOne(() => User, (user) => user.familyUsers, { nullable: false })
user: User;
@ManyToOne(() => Family, (family) => family.familyUsers, { nullable: false })
family: Family;
我想获取特定用户的家庭列表。第一个选项是:
await this.familiesUsersRepository.find({
relations: ['family'],
where: {
user: { id: 6 },
},
});
但在这种情况下,我得到FamilyUsers 的列表,其中每个包含一个家庭对象。但我想返回属于用户的家庭列表。我试过这个:
return await this.familiesRepository.find({
relations: ['familyUsers', 'familyUsers.user'],
where: {
// ???
},
});
但是不知道我应该在 where 子句中设置什么。有什么想法吗?
【问题讨论】: