我有以下数据实体:
@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));
列类型有一个“json”类型: https://typeorm.io/entities#column-types-for-mysql--mariadb
然后你可以写类似的东西
@Column({ 类型: 'json' }) 资源:{ 标题:字符串;参考:字符串}[];