【发布时间】:2020-02-18 07:24:31
【问题描述】:
我正在创建多对多关系
@Entity({
name: 'product'
})
export class Product {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column({type: 'decimal', precision: 13, scale: 2})
price: number;
@ManyToMany(() => Tag, (tag: Tag) => tag.products)
@JoinTable({
name: 'product_tag'
})
tags: Tag[];
@CreateDateColumn()
createdAt: Timestamp;
@UpdateDateColumn()
updatedAt: Timestamp;
}
@Entity({
name: 'tag'
})
export class Tag {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToMany(() => Product, (product: Product) => product.tags)
products: Product[];
@CreateDateColumn()
createdAt: Timestamp;
@UpdateDateColumn()
updatedAt: Timestamp;
}
假设 db 中有一些标签。例如:Tag = [{id: 1, name: 'pc'}, {id: 2, name: 'laptop'}]
我有产品Product = [{id: 1, name: 'Zenbook', price: 10000 }]
现在我需要将这些标签添加到产品中。
我想做这样的事情
const product = await this.repository.findOne({id: 1});
product.tags = [{id: 1}, {id:2}];
await this.repository.save(product);
我知道这是错误的。
我该怎么做?
谢谢
【问题讨论】:
标签: node.js typescript express typeorm