【发布时间】:2021-05-11 18:33:52
【问题描述】:
假设我有一些这样的实体
项目实体
@Entity()
export class ProjectEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToMany(() => TagEntity)
@JoinTable({ name: 'project_tag' })
tags: Promise<TagEntity[]>;
}
标记实体
@Entity()
export class TagEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
}
项目标签实体
@Entity('project_tag')
export class ProjectTagEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({
nullable: false,
})
tagId: number;
@Column({
nullable: false,
})
projectId: number;
@CreateDateColumn()
createdAt: Date;
}
当我像这样保存它们时:
//assume there is already saved row for project and tag entities right here
project.categories = [tag1, tag2];
await connection.manager.save(project);
为什么 project_tag 表中有重复的行?例如,以前已经存在与项目的 tag1 和 tag2 关系,但我第二次保存它,它在 project_tag 表中给出了重复的行。我该如何避免这种行为?
【问题讨论】:
标签: typescript nestjs typeorm