小编Tim*_*sch的帖子

TypeORM 获取多对多关系的一侧

我有两个实体:UserOrganisation。这些实体彼此之间具有多对多关系。(一个用户可以属于多个组织,一个组织可以有多个用户。)

我有一个端点,/organisation/:id/members该端点应仅返回属于 组织的用户:id

我创建了一个查询,如下所示:

    const members = await getConnection()
      .createQueryBuilder(Organisation, 'org')
      .where('org.id = :orgId', { orgId })
      .innerJoinAndSelect('org.members', 'member')
      .select('member')
      .getMany();
Run Code Online (Sandbox Code Playgroud)

这将返回一个空数组,除非getRawMany使用。然后它返回以下内容:

[
  {
    "member_id": 1,
    "member_email": "example@example.com",
    "member_firstName": "John",
    "member_middleName": "",
    "member_lastName": "Doe"
  }
]
Run Code Online (Sandbox Code Playgroud)

我想知道如何getMany()返回User实体。

更新: 我有以下示例,它确实有效。但是,它要求用户为 joinTable 指定名称。

await getConnection()
      .createQueryBuilder(User, 'user')
      .innerJoinAndSelect(
        'organisation_members',
        'member',
        'member.userId = user.id',
      )
      .where('member.organisationId = :orgId', { orgId })
      .getMany();
Run Code Online (Sandbox Code Playgroud)

node.js typescript typeorm

3
推荐指数
1
解决办法
5833
查看次数

标签 统计

node.js ×1

typeorm ×1

typescript ×1