I have 3 tables as following:
users:
id
families:
id
families_users:
familyId | userId
I have these relations:
// 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;
I want to get a particular user's family list. The first option is:
await this.familiesUsersRepository.find({
relations: ['family'],
where: {
user: { id: 6 },
},
});
But in this case, I get the list of FamilyUser
s which each one contains a family object. But I want to return the list of families that belongs to the user. I tried this:
return await this.familiesRepository.find({
relations: ['familyUsers', 'familyUsers.user'],
where: {
// ???
},
});
But have no idea what I should set in the where clause. Any idea?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…