我有两个实体:User
和Organisation
。这些实体彼此之间具有多对多关系。(一个用户可以属于多个组织,一个组织可以有多个用户。)
我有一个端点,/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)