【发布时间】:2021-02-27 23:21:56
【问题描述】:
我想确切地知道 Type orm 中的一对多关系
@oneTomany
这个命令本身是否是一列,并且该列的值保存在另一个表中吗?
它的参数到底是什么?
【问题讨论】:
我想确切地知道 Type orm 中的一对多关系
@oneTomany
这个命令本身是否是一列,并且该列的值保存在另一个表中吗?
它的参数到底是什么?
【问题讨论】:
一对多关系用于将表中的一行链接到另一个表中的多行。
例如,如果您有一个用户表和文章表,并且您想将文章链接到用户,这将非常有用。
使用 TypeOrm,你需要在你的用户实体中定义 @OneToMany() 装饰器
@OneToMany(() => ArticlesEntity, articleEntity => articleEntity.user)
@JoinColumn()
articles: ArticlesEntity;
你还需要在另一边定义@ManyToOne()装饰器,这里是文章实体
@ManyToOne(() => UsersEntity)
@JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
user: UsersEntity;
如您所见,关系需要referencedColumnName。这将是您的文章表中引用的 userId。
由于这种关系,您将有可能在找到您的文章时获得链接用户
async findArticleById(id): Promise<ArticlesEntity> {
return this.findOne({
where: { id },
relations: ['user'],
});
}
如果您需要有关它的更多信息,请查看typeorm documentation about many-to-one-one-to-many relations
【讨论】: