【问题标题】:typeorm querybuilder: select relation of relation onlytypeorm querybuilder:仅选择关系的关系
【发布时间】:2020-06-30 15:58:57
【问题描述】:

所以我有这些实体:

Group {
    id: number;
    name: string;
    persons: Person[];
}

Person {
    name: string;
    items: Item[];
}

Item {
    name: string;
    active: boolean;
}

我有什么:一组组 ID 的 groupIds。

我的目标:获得Item 的数组,但只有group.id 在我拥有的组数组中的组中包含的数组,并且还具有@987654325 属性@true.



我试图构建一个这样的查询构建器:

this.groupRepository.createQueryBuilder('group')
                      .innerJoin('group.persons', 'persons')
                      .innerJoinAndSelect('persons.items', 'items')
                      .where({'items.active': true, 'group.id': In(groupIds)})
                      .getMany();

但我只得到一个包含有效item 的group 数组(没有任何关系)。

如果通过单个查询甚至可以更改,我需要更改什么?

【问题讨论】:

    标签: sql node.js nestjs typeorm


    【解决方案1】:

    尝试使用这个:

     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();
    

    【讨论】:

      猜你喜欢
      • 2021-01-14
      • 2021-09-25
      • 2022-07-16
      • 1970-01-01
      • 2022-07-12
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多