繁体   English   中英

TypeORM 的 Upsert 问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM