TypeORM:通过一次调用数据库返回更新的对象? (异步/等待)

Posted

技术标签:

【中文标题】TypeORM:通过一次调用数据库返回更新的对象? (异步/等待)【英文标题】:TypeORM: return updated object with single call to database? (async/await) 【发布时间】:2021-11-07 09:12:58 【问题描述】:

TypeORM 的entity.update() 方法不返回更新的对象,而是简单的成功/失败通知。然后可以在更新后通过 entity.findOne() 返回更新的对象,但这意味着对数据库的两次来回调用而不是一次。

我见过一些人使用entity.save() 进行部分更新,但是如果对象不存在,这会创建新实体,这是不希望的。我也可以使用.then(),但我不想将thens 与我的async/await 代码混用。

有没有什么方法可以通过一次调用数据库来返回 TypeORM 中更新的实体?

编辑: 我的问题源于此线程中的答案和cmets:TypeORM: update item and return it

【问题讨论】:

【参考方案1】:

有几种方法,例如使用queryBuilder。

你可以看到这个,这个问题的答案提供了很多可能的例子 => TypeORM: update item and return it

【讨论】:

该线程中响应的 cmets 触发了我的问题 =) 3 个主要响应 a) 如果要更新的对象不存在,则保存一个新实体,b) 对数据库,或 c) .then() 用于代替 async/await。我想知道是否有可以与 async/await 一起使用并且没有问题 a) 和 b) 的解决方案。

以上是关于TypeORM:通过一次调用数据库返回更新的对象? (异步/等待)的主要内容,如果未能解决你的问题,请参考以下文章

如何只返回 typeorm 关系的一个属性?

Typeorm 插入数据,即使它存在

TypeORM 在批量保存时抛出重复错误,而不是忽略或更新现有值

TypeORM/NestJS 中的分页

如何仅通过一次调用将一组对象保存到猫鼬数据库?

如何插入多个实体并在 TypeORM 中返回它们