TypeORM - 只更新提供的值,其余的保持原样
TypeORM - Update only values that are provided and leave the rest as they are
我将如何使用 TypeORM 来解决这个问题?
我有一个实体,我们称它为 EntityA。
我的数据库中有 1 个 EntityA,名字 = Joe,年龄 = 17
现在我的前端向我的 API 发送一个 post 请求,其中包含一个对象,例如 { name: Joe, age: 16 }
我如何告诉 orm 类型用名称“Joe”更新数据库中的 EntityA,并且仅更新提供的与当前存储在数据库中的值(在本例中为年龄)不同的值?
我遇到了同样的问题,尤其是 nullable
列中的 undefined
值。
以my project's Product repository更新函数为起点。
我使用条件 spread syntax (...) to "build" the query dynamically. See this 来获取更多信息。
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);
}
仅更新 user
中存在的列。例如:如果不存在 user.name
,则不会更新它,因为它不在更新对象中。
我将如何使用 TypeORM 来解决这个问题?
我有一个实体,我们称它为 EntityA。
我的数据库中有 1 个 EntityA,名字 = Joe,年龄 = 17
现在我的前端向我的 API 发送一个 post 请求,其中包含一个对象,例如 { name: Joe, age: 16 }
我如何告诉 orm 类型用名称“Joe”更新数据库中的 EntityA,并且仅更新提供的与当前存储在数据库中的值(在本例中为年龄)不同的值?
我遇到了同样的问题,尤其是 nullable
列中的 undefined
值。
以my project's Product repository更新函数为起点。
我使用条件 spread syntax (...) to "build" the query dynamically. See this 来获取更多信息。
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);
}
仅更新 user
中存在的列。例如:如果不存在 user.name
,则不会更新它,因为它不在更新对象中。