所以我有那些实体:
Group {
id: number;
name: string;
persons: Person[];
}
Person {
name: string;
items: Item[];
}
Item {
name: string;
active: boolean;
}
我可以使用的内容:一组包含组ID的groupIds
。
我的目标:要获取Item
的数组,但只能包含group.id
在我拥有的数组中的一个数组属性active
true
。
我试图建立一个像这样的querybuilder:
this.groupRepository.createQueryBuilder('group')
.innerJoin('group.persons', 'persons')
.innerJoinAndSelect('persons.items', 'items')
.where({'items.active': true, 'group.id': In(groupIds)})
.getMany();
但是我只能得到其中有有效group
的{{1}}数组(没有任何关系)。
如果只用一次查询就可以做到,我需要更改什么?
答案 0 :(得分:3)
尝试使用此功能:
this.groupRepository.createQueryBuilder('group')
.leftJoinAndSelect('group.persons', 'persons')
.leftJoinAndSelect('persons.items', 'items')
.where('items.active =:active', {active: true})
.andWhere('group.id IN (:...groupIds)', {groupIds})
.getMany();