TypeORM获得多对多关系的一面

蒂姆·范·奥施(Tim van Osch)

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

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

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

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

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

[
  {
    "member_id": 1,
    "member_email": "[email protected]",
    "member_firstName": "John",
    "member_middleName": "",
    "member_lastName": "Doe"
  }
]

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

更新:我有以下示例,它可以工作。但是,它要求用户为joinTable命名。

await getConnection()
      .createQueryBuilder(User, 'user')
      .innerJoinAndSelect(
        'organisation_members',
        'member',
        'member.userId = user.id',
      )
      .where('member.organisationId = :orgId', { orgId })
      .getMany();
蒂姆·范·奥施(Tim van Osch)

新答案:我的实体设置不正确。我这样指定了ManyToMany关系(不正确!):

@ManyToMany(type => User)
members: User[];

因为这是双向关系,所以我必须指定用户在哪个领域与组织有关系:


@ManyToMany(
  type => User,
  user => user.organisations,
)
  members: User[];

我的用户实体具有:

@ManyToMany(
  type => Organisation,
  org => org.members,
)
organisations: Organisation[];

使用TypeORM查询关系构建器获取所有成员。

再次更新:

return getConnection()
      .createQueryBuilder()
      .relation(Organisation, 'members')
      .of(orgId)
      .loadMany();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择“多”面后,如何在流星中发布一对多关系的“一面”?

来自分类Dev

如何获得多对多关系的ID?

来自分类Dev

如何在Laravel中获得多对多关系项目

来自分类Dev

如何获得多对多关系中不存在的行

来自分类Dev

从多到多的一面

来自分类Dev

获得一对多关系的最新记录

来自分类Dev

如何在Django / Wagtail中访问ManyToMany关系的“另一面”?

来自分类Dev

Laravel 4:如何获得多对多关系中的选定/特定列?

来自分类Dev

Laravel雄辩地每个数据透视表字段条件获得多对多关系

来自分类Dev

Typeorm如何获得关系

来自分类Dev

在最长的一面调整图像大小

来自分类Dev

SwiftUI .toolbar的另一面

来自分类Dev

按钮仅刷新一面

来自分类Dev

在最长的一面调整图像大小

来自分类Dev

HTML 旁白 - 指定一面

来自分类Dev

在一对多关系表中获得最低的共享价值

来自分类Dev

Yesod从数据库获得一对多关系

来自分类Dev

在一对多关系表中获得最低的共享价值

来自分类Dev

TypeORM-搜索并填充多对多关系

来自分类Dev

TypeORM更新所有记录中多对多关系的一部分

来自分类Dev

评估三角形的一面

来自分类Dev

tkinter的图像插入了多余的一面

来自分类Dev

总是在错误的一面添加附加显示

来自分类Dev

影响新对象的一面正在更改原始对象

来自分类Dev

在雄辩中获得多个关系

来自分类Dev

Laravel:hasManyThrough 关系以获得多对多表值

来自分类Dev

一对多关系MySQL-仅获得一个多记录

来自分类Dev

如何与greenDao获得递归多对多关系

来自分类Dev

学说一对多关系