代码之家  ›  专栏  ›  技术社区  ›  duncanhall

PSQL和TypeForm:按关系过滤实体,但不过滤关系

  •  0
  • duncanhall  · 技术社区  · 3 年前

    想象一下以下关系:

    Team --one-to-one--> Owner --many-to-many--> Role
    

    Team 实体具有单个 Owner 具有多个 Role 实体。

    我可以使用QueryBuilder成功地做到这一点:

    const query = this.manager.createQueryBuilder()
      .select('team')
      .from(Team, 'team')
      .leftJoinAndSelect('team.owner', 'owner')
      .leftJoinAndSelect('owner.roles', 'roles'
      .where('roles.name IN (:...roles)', { roles })
      .getMany()
    

    这将根据 roles 我提供。

    team.owner.roles 价值是 而且 正在返回集中进行筛选。因此,如果我搜索一个拥有“管理员”角色的团队,匹配的所有团队都将列出 “管理员”角色在其角色中-即使原始集合包含更多。

    如何基于关系属性过滤实体,但仍然返回关联关系属性的完整集合

    0 回复  |  直到 3 年前