如何使用节点(打字稿)更新Type ORM中的一对一关系

How to update one-one relation in Type ORM using node(typescript)

我有两个实体,一个是 Filter,另一个是 Dataset,两者都是一对一的关系 让我知道如何使用承诺的存储库更新基于数据集的过滤器实体 代码写在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