typeorm中的精确一对多是什么

Rez*_*ari 1 typeorm nestjs

我想确切地知道 Type orm 中的一对多关系是什么

\n
@oneTomany \n
Run Code Online (Sandbox Code Playgroud)\n

这个命令本身是否是一个列并且该列的值保存在另一个表\xd8\x9f\xd8\x9f中

\n

它的具体参数是什么?

\n

Hug*_*ohm 6

一对多关系用于将表中的一行链接到另一个表中的多行。

例如,如果您有用户表和文章表并且您想要将文章链接到用户,那么它会很有用。

使用TypeOrm,您需要@OneToMany()在用户实体中定义装饰器

@OneToMany(() => ArticlesEntity, articleEntity => articleEntity.user)
@JoinColumn()
articles: ArticlesEntity;
Run Code Online (Sandbox Code Playgroud)

您还需要@ManyToOne()在另一侧定义装饰器,在文章实体中

@ManyToOne(() => UsersEntity)
@JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
user: UsersEntity;
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这种关系需要一个referencedColumnName. 这将是您userId在文章表中引用的内容。

由于这种关系,您在查找您的文章时将有可能获得链接的用户

async findArticleById(id): Promise<ArticlesEntity> {
   return this.findOne({
       where: { id },
       relations: ['user'],
   });
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请查看有关多对一一对多关系的 typeorm 文档