web-dev-qa-db-ja.com

TypeORM:アイテムを更新して返す

私の知る限り、更新後にアイテムを返品することをお勧めします。 TypeORMのupdateByIdvoidを返しますが、更新されたアイテムは返しません。

私の質問:変更されたアイテムを1行で更新して返すことはできますか?

私がこれまでに試したこと:

await this.taskRepository.updateById(id, { state, dueDate });
return this.taskRepository.findOne({ id });

私が探しているもの:

return this.taskRepository.updateById(id, { state, dueDate }); // returns updated task
10
sandrooco

.saveメソッドを使用してこれを実行できることがわかりました。

return this.taskRepository.save({
    ...task,
    state,
    dueDate
});
7
sandrooco

Sandroocoの答えをさらに詳しく説明するために、これは私が行うことです。

const property = await this.propertyRepository.findOne({
  where: { id }
});

return this.propertyRepository.save({
  ...property, // existing fields
  ...updatePropertyDto // updated fields
});
3
Danny Pule

1つの方法は、更新を実行してから、指定した条件に基づいて検索を行うことです

0
Chidiebere