[英]Issue with Upsert of TypeORM
我正在尝试使用 TypeORM 将多个 JSON 数据插入名为integration_data的表中。 我正在为我的应用程序使用 NodeJS。 但不知何故,我无法使用 TypeORM 形成查询,以在 Postgres SQL 中执行我的 JSON 数据的批量 UpSert。
以下是我的逻辑:-
let dbConn = await database.getConnection(connectionOptions);
await dbConn.createQueryBuilder()
.insert()
.into(IntegrationData)
.values(rawdata)
.onConflict(`("id") DO UPDATE SET "empData" = excluded."empData"`)
.execute();
在这里,我传递了 rawData,它是一个 JSON 对象的数组。
实体:-
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
@Entity({ name: 'integration_data' })
export class IntegrationData {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'bigint', nullable: false, name: "emp_id" })
empId: number;
@Column({ type: 'text', nullable: false, name: "integration_name" })
integrationName: string;
@Column({ type: 'json', nullable: false, name: "emp_data" })
empData: object
}
这里integration_data表中的emp_data列是 JSON。 以下是我在 Postgres 上的表格:-
我可以知道如何执行 upsert 操作,即如果不存在则插入,否则根据emp_id更新 Postgres 数据库中的记录,这将是唯一的。
干杯
如果将列设置为主键,则可以使用 TypeORMs Repository.save()
方法进行更新插入。 您可以简单地将对象数组传递给该方法。
从文档中:
/**
* Saves all given entities in the database.
* If entities do not exist in the database then inserts, otherwise updates.
*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.