如何在 typeORM 函数中使用多个属性来检查更新时的重复项

问题描述 投票:0回答:1

我正在研究 NestJS 并使用 TypeORM 与 MS SQLSERVER 连接。现在我正在开发 update 功能。我想检查更新后的数据是否重复,除了它本身之外。

所以,我想做一些类似的东西,

从 tblproducts 中选择 COUNT(*),其中 Product_no = :updatedProductNo AND Product_no != :currentProductNo

如果是相同的数据或者updatedProductNo是新的则返回0,否则如果数据已存在则返回1

所以我的代码是这样的,

const productExist:number = this.productRepository.countBy({productNo: updateProductDto.productNo, productNo: Not(currentProduct.productNo)});

但是我会收到错误

一个对象字面量不能有多个同名的属性。

请帮忙。

nestjs typeorm nest nestjs-typeorm
1个回答
0
投票

您可以尝试使用 QueryBuilder 在同一字段上写入多个条件

const queryBuilder = productRepository.createQueryBuilder('product');

const productExist = await queryBuilder
.where('product.productNo = :productNo', { productNo: 
updateProductDto.productNo })
.andWhere('product.productNo != :currentProductNo', { currentProductNo: 
currentProduct.productNo })
.getCount();
© www.soinside.com 2019 - 2024. All rights reserved.