问题描述
我有两个实体,一个是Filter,另一个是Dataset,两者都有一一关系 让我知道如何使用 Repository on promise 根据数据集更新过滤器实体 代码写在node.ts上 我的 API 调用是 .put('/dataset/:id/filter')
`@Entity('dataset')
export class DatasetEntity {
@PrimaryGeneratedColumn('increment')
id!: number
@Column()
program!: string
@Column()
description!: string
@Column()
name!: string
}
@Entity('filter')
export class FilterEntity {
@PrimaryGeneratedColumn('increment')
id!: number
@Column({ type: 'json' })
attributes!: { [key: string]: any }
@OnetoOne(() => DatasetEntity)
@JoinColumn()
dataset!: DatasetEntity
}`
解决方法
你可以这样做。
const filterRepo = getRepository(FilterEntity);
const savedFilter = await filterRepo.findOne({
//Choose one according your situation
id: req.params.id //if id comming from params is filter id,dataset: req.params.id //if id comming from params is filter id
});
if(!savedFilter.dataset)
throw "Data set not found";
//Now pass the updated value like
savedFilter.attributes = req.body.attributes;
await filterRepo.save(savedFilter);
您可能需要在过滤器存储库中更改一件事
@OneToOne(() => DatasetEntity)
@JoinColumn({name: "id"})
dataset!: DatasetEntity