据我所知,最好的做法是在更新后返回一个项。TypeORM的updateById
返回void
,而不是更新后的项。
我的问题:是否可以在单行中更新并返回已修改的物料?
到目前为止,我尝试了:
await this.taskRepository.updateById(id, { state, dueDate });
return this.taskRepository.findOne({ id });
我在寻找:
return this.taskRepository.updateById(id, { state, dueDate }); // returns updated task
4条答案
按热度按时间ecbunoof1#
我刚刚发现我可以用
.save
方法来实现这一点:根据文档(第
save
节),也支持部分更新:由于跳过了所有未定义的属性,因此还支持部分更新。
5jvtdoz22#
下面是我对Sandrooco的回答的进一步阐述:
plicqrtu3#
该键返回
response.raw[0]
以取回类型。虽然我希望
await Table.update({}, {})
返回Table
,但它并没有返回。我发现使用QueryBuilder
更容易,因为它总体上给了我更多的控制,但是如果你不喜欢QueryBuilder
* 或者不需要它 *,你可以这样做:但是如果你想使用
QueryBuilder
,我建议你使用下面的方法。上面的其他人已经提到了Repository
和Table.save()
的用法,它们在任何地方都不会返回原始的type
,所以这种方法对我来说是不可能的。Table.update({}, {})
的示例:QueryBuilder
的示例:Helper函数 (如果您不想一直编写
response.raw[0]
)用法:
.returning("*")
不适用于MySQL,请参阅下面的注解。*bfnvny8b4#
一种方法是执行更新,然后根据指定的条件执行查找