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

bf1o4zei  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(106)

我有以下数据实体:

@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不是数据实体的一部分,即使它应该是。谢谢.

q3qa4bjr

q3qa4bjr1#

你需要把它展平,在把对象传递到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));
bsxbgnwa

bsxbgnwa2#

列类型有一个'json'类型:https://typeorm.io/entities#column-types-for-mysql--mariadb
然后,您可以编写类似于
@列({ type:'json' })resources:{ title:string; int [];

相关问题