我正在尝试弄清楚如何使upsert SQL与typeorm实体一起工作(而不是使用querybuilder!)
const items = Items[] //Items are the entity which extends BaseEntity
await this.repository.save(items)这可以很好地工作,但当我查看控制台时,它会生成以下SQL:
UPDATE Database.items SET created_at=(something) WHERE id=(something)
UPDATE Database.items SET created_at=(something) WHERE id=(something)
UPDATE Database.items SET created_at=(something) WHERE id=(something)
...尽管它被START transaction和COMMIT绑定在一起,我想做同样的事情,但不是使用TRANSACTION。
我想要这样的东西:
UPDATE Database.items SET created_at=(something) WHERE id IN (somethings)如何仅使用typeorm的AbstractRepository来实现这一点?
发布于 2021-04-19 13:58:41
您可以参考文档链接updatequery和wheredocs。这应该可以解决您的问题。
import {getConnection} from "typeorm";
const itemIds = [1,2,3];
await getConnection()
.createQueryBuilder()
.update(Item)
.set({ created_at: "something" })
.where("items.id IN (:...ids)", { ids: itemIds })
.execute();https://stackoverflow.com/questions/67156494
复制相似问题