如何使用 typeorm 和 Nestjs 保存嵌套对象?

How to save a nested object using typeorm and Nestjs?

我有以下数据实体:

@PrimaryGeneratedColumn() 
id: number 

@Column() 
dataA: string 

@Column() 
dataB: string 

@Column() 
dataC: number

@Column() 
dataD: number

我要保存的数据对象:

const data = {
      dataA: "data 1",
      nestedData: {
        dataB: "data 2",
        dataC: 3
      },
      dataD: 4
      }

然后我试着保存如下:

await this.dataRepository.save(data)

我收到一条错误消息,指出 dataB 和 dataC 不是数据实体的一部分,尽管它应该是。谢谢

您需要将其展平,在将对象传递到 Repository 之前编写一个函数来执行此操作。

export function flattenData(data) {
    return {
        dataA: data.dataA,
        dataB: data.nestedData.dataB,
        dataC: data.nestedData.dataC,
        dataD: data.dataD,
    }
}

// then pass into Repository
await this.dataRepository.save(flattenData(data));