小编Tur*_*gon的帖子

如何从 NestJS/TypeORM 中父的加入字段访问关系 ID

我正在设置一个使用 TypeORM 的 NestJS GraphQL API,并且在实现实体之间的关系时遇到了问题。

具体来说,TypeORM 关系运行良好,实体在数据库中正确链接。但是,当我尝试查询 API 以获取结果时,问题就出现了。

现在我有 2 个实体,每个实体都有自己的解析器:用户和照片。每个用户可以拥有多张照片,而每张照片仅连接到一个用户(多对一)。

以下是实体与 TypeORM 的链接方式

照片实体,与用户实体有关系

@ManyToOne(type => User, user => user.photos, {
    onDelete: 'CASCADE',
})
@JoinColumn()
user: User;
Run Code Online (Sandbox Code Playgroud)

用户实体,完成与照片实体的连接

@OneToMany(type => Photo, photo => photo.user, {
    eager: true,
})
photos: Photo[];
Run Code Online (Sandbox Code Playgroud)

此代码有效,让我们检索用户的照片

用户解析器

@ResolveProperty('photos')
async photos(@Parent() user): Promise<Photo[]> {
    return await this.service.readPhotos(user.id);
}
Run Code Online (Sandbox Code Playgroud)

用户服务

async readPhotos(userId): Promise<Photo[]> {
    return await this.photoRepository.find({
        where: {
            user: userId
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

*请注意,photoRepository 可以通过“用户”字段进行过滤。*

但是,此代码不起作用。它应该让我们查看哪个用户连接到照片,而不是返回 null。

照片解析器

@ResolveProperty('user')
async user(@Parent() …
Run Code Online (Sandbox Code Playgroud)

node.js graphql typeorm nestjs

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

标签 统计

graphql ×1

nestjs ×1

node.js ×1

typeorm ×1