TypeORM - 仅更新提供的值,其余部分保持原样

use*_*074 4 typeorm nestjs

我将如何使用 TypeORM 来解决这个问题?

我有一个实体,我们将其称为 EntityA。

我的数据库中有 1 个 EntityA,名称 = Joe,年龄 = 17

现在,我的前端向我的 API 发送一个带有类似 { name: Joe,age: 16 } 的对象的 post 请求

如何告诉 type orm 用“Joe”的名称更新数据库中的 EntityA,并且仅更新提供的与数据库中当前存储的值不同的值(在本例中为年龄)?

Car*_*ini 8

我遇到了同样的问题,尤其是列undefined中的值nullable。以我项目的产品存储库更新功能为起点。我使用条件扩展语法(...) 动态“构建”查询。请参阅了解更多信息。

async function update(id: string, user: User): Promise<User> {
    // Update
    await userRepository.update(id, {
      ...(user.name && { name: user.name }),
      ...(user.surname && { surname: user.surname }),
      ...(user.age && { age: user.age }),
    });

    // Return
    return this.repository.findOneOrFail(id);
  }
Run Code Online (Sandbox Code Playgroud)

仅更新 中存在的列user。例如:如果不user.name存在,则不更新它,因为它不在更新对象中。