如何使用使用存储库和一对多关系插入数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用使用存储库和一对多关系插入数据?相关的知识,希望对你有一定的参考价值。
我有两个实体,产品和类别我曾尝试将数据添加到数据库,但没有收到错误消息。但是结果不是我的期望。结果成功,但是当我转到mysql并查看相关表时,categoryId字段似乎被标记为null
我的产品实体
export class Product {
@PrimaryGeneratedColumn({ type: 'bigint', unsigned: true })
id: number;
@Column({ type: 'varchar', length: 255 })
name: string;
@Column({ type: 'int' })
price: number;
@Column({ type: 'varchar', length: 255 })
code: string;
@Column({ type: 'timestamp', nullable: true })
created_at: Date;
@ManyToOne(type => Category, category => category.products,
{ cascade: ['insert', 'update'],eager:true,onDelete:"CASCADE",onUpdate:"CASCADE" })
category: Category;
}
我的产品服务
@Injectable()
export class ProductService {
constructor(
@InjectRepository(Product)
private productRepository: Repository<Product>,
) {
}
create(createProductDto: ProductDto): Promise<Product> {
const product = new ProductDto();
product.categoryId =createProductDto.categoryId;
product.code=createProductDto.code;
product.name = createProductDto.name;
product.price = createProductDto.price;
return this.productRepository.save(product)
}
}
答案
您需要将categoryId
外键添加到Product
实体:
export class Product {
//...
@Column()
categoryId: number;
}
以上是关于如何使用使用存储库和一对多关系插入数据?的主要内容,如果未能解决你的问题,请参考以下文章