Typescript 对象的typerm save()数组忽略@PrimaryColumn()并创建副本

Typescript 对象的typerm save()数组忽略@PrimaryColumn()并创建副本,typescript,typeorm,Typescript,Typeorm,我的观点是: @Entity() export class Point { @PrimaryGeneratedColumn('uuid') id: string; @IsUUID() @PrimaryColumn({ type: 'uuid', unique: true, primary: true, })

我的观点是:

@Entity()
export class Point {

        @PrimaryGeneratedColumn('uuid')
        id: string;

        @IsUUID()
        @PrimaryColumn({
               type: 'uuid',
                unique: true,
                primary: true,
        })
        deliveryTerminalId: string;
}
然后我从另一个API得到这样的结构

export interface DeliveryTerminalsInterface {
    deliveryTerminalId: string;
}
我想保存DeliveryTerminalsInterface的数组,比如Point。(我会同步数据,我自己的实体点将来会有更多的@Colums())

它是保存、创建实体数组。但若我再次执行sync方法,它不会通过deliveryTerminalId主键更新退出实体,而是创建一个新的。在DB中,现在有两个实体,其PrimaryColumn与deliveryTerminalId相同


这怎么可能,你做错了什么?也许我需要使用另一种方法来保存/更新此数据?

您使用的是两个
主列标识符。不能将
@PrimaryGeneratedColumn
@PrimaryColumn
都放在同一个实体中。移除其中一个,然后重试

尝试将代码更改为以下内容:

@Entity()
export class Point {

    @PrimaryGeneratedColumn('uuid')
    id: string;

    @IsUUID()
    @Column({
       type: 'uuid',
       unique: true
    })
    deliveryTerminalId: string;
}
如果保存对象中存在
id
,则所述对象将被更新

await this.pointRepository.save(pointSaveObj);
await this.pointRepository.save(pointSaveObj);