我将node.js后端与nest.js和typeorm一起用于数据库操作。我获取一个json,其中包含一个要保存在mysql数据库中的对象列表。这个数据库将每天更新,但我只想保存数据,这是不是已经在该表。我以为 repository.save()
typeorm已经这么做了,但不是。 save
-保存给定的实体或实体数组。如果实体已存在于数据库中,则会对其进行更新。如果该实体在数据库中不存在,则插入该实体。
可能是因为我在保存时生成了一个uuid列,并且输入了tyform,所以认为它是另一个项目?有人能帮我吗。
async writeNewEPG(epgData: EpgDataDTO[]){
const data = await this.epgDataRepository.create(epgData);
const response = await this.epgDataRepository.save(data);
return response;
}
实体:
import { Entity, Column, PrimaryColumn, PrimaryGeneratedColumn } from 'typeorm';
@Entity('epg_data')
export class EpgDataEntity {
@PrimaryColumn()
@PrimaryGeneratedColumn('uuid')
uuid: string;
@Column({type: "text", nullable: true})
sname: string;
@Column({type: "text", nullable: true})
title: string;
@Column({type: "int", nullable: true})
begin_timestamp: number;
}
1条答案
按热度按时间ztigrdn81#
我以前遇到过这个问题;所以我通常先检查是否有这个项目
好像什么都是硬编码。我也试过了
await Repository.updateOne(oldData)
有时我会犯意想不到的错误。急于找出正确答案。