如何通过 TypeORM 中的原始查询进行批量更新?
例如,我们有具有属性名称的模型 User
如何在一个事务中更改几个用户的名称?
类型orm版本:0.2.7
数据库:后记
不支持用不同的值更新多个列。关于这一点,在type ORM repo:https://github.com/typeorm/typeorm/issues/7326中有一个公开的问题
如何使用原始psql执行此操作,请参见@Roman-Pekar对使用PostgreSQL更新同一查询中的多行的回答。
另一个“解决方案”是在 postgres db 中创建一个存储的函数并调用它。在另一个类似问题的评论中,我展示了一个如何做到这一点的示例:typeorm高效的批量更新
您还可以通过以下方式使用存储库api更新多行:
await repository.update(
{
id: In([1,2,3,4,5]),
},
{ selected: true },
);
要进行批量更新,可以使用update with set方法,当可以使用orm函数时,建议不要使用原始查询。
import {getConnection, In} from "typeorm";
const userIds = [1,2,3];
await getConnection()
.createQueryBuilder()
.update(User)
.set({ isaSeniorCitizen: true })
.where({ id: In(userIds) })
.execute();
问题内容: 考虑以下方法: 和 这两种方法有什么区别?如果没有差异,为什么要使用第二个? 问题答案: 不允许您在列表中添加对象。请参阅下面的程序。这是我们传递给method的特定列表类型。 特定方式,列表是使用特定类型创建的,并传递给method 。不要与 单词 混淆。 具体可以是任何普通对象,例如Dog,Tiger,String,Object,HashMap,File,Integer,Long
问题内容: 我正在尝试使用原始sqlalchemy查询将值插入Postgres11数据库。通过psql- client运行以下SQL查询时,它可以正常运行: 所有行均正确插入: 但是,如果我在sqlalchemy中创建一个引擎,并使用相同的查询在其上调用execute,它会成功运行,但不会插入任何行: 但是没有插入新行: 通过psql-client运行查询与通过sqlalchemy执行查询有何不同
我想在一条语句中更新PostgreSQL和Go中的多行。有没有办法做如下事情? 还有有没有一个例子,如果用go语言执行?
最近,我开始在Java后端使用Elasticsearch(7.6.x)(我基本上是ES的初学者),我有一个一般性的问题,我搜索了这个问题,但没有找到答案: 我的工作流程如下: > 我打开kibana的开发工具控制台,想出一个要搜索的查询。因为语法对我来说是新的,所以需要一些时间。 然后我的DAO-s中有了。我正试图将我在kibana中创建的查询“翻译”给众多的构建者,用java API构建一个查询
我正在使用具有HiberNate的Spring Boot1.5.2。 我有一个对象列表。每个对象都包含许多属性和@OneTo许多关系(即从数据库中获取此对象并将此对象更新到数据库需要很长时间)。 这就是我使用自定义 JPQL 查询的原因: 一个用于加载对象列表的基本属性 一个用于更新对象所需的属性 我从CrudRepository扩展了这个方法,用于获取对象列表(只有所需的属性) 现在,我想通过以
7.12. 通过类型断言询问行为 下面这段逻辑和net/http包中web服务器负责写入HTTP头字段(例如:"Content-type:text/html)的部分相似。io.Writer接口类型的变量w代表HTTP响应;写入它的字节最终被发送到某个人的web浏览器上。 func writeHeader(w io.Writer, contentType string) error { if