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);