typeorm 更新,使用typeORM进行批量插入/更新的有效方法

How it's possible to insert pre-created objects into relation with an object using TypeORM?

As I know the non-efficient is this(many to many relations):

const tags = await Tag.findByIds(tagIds);

const todo = await Todo.findOne(todoId);

todo.tags = tags;

return await Todo.save(todo)

Also .add() property of RelationalQueryBuilder takes single object or Id as is mentioned in docs

await getConnection()

.createQueryBuilder()

.relation(Post, "categories")

.of(1)

.add(3);

So what is the efficient way to bulk insert?

解决方案

I had error while using @Arg imported from typeGraphql for passing an array of string so I resolved it so add() from typeOrm takes the Id array

so the fast and performant example of relational query is:

import { Resolver, Arg, Mutation } from "type-graphql";

import { Todo } from "../../entity/Todo";

import { createQueryBuilder } from "typeorm";

@Resolver()

export class BulkAssignTagsResolver {

@Mutation(() => Todo)

async bulkAssignTodoTag(

@Arg("tagIds", () => [String]) tagIds: string[],

@Arg("todoId") todoId: string

): Promise {

await createQueryBuilder("todo")

.relation(Todo, "tags")

.of(todoId)

.add(tagIds);

return Todo.findOne(todoId, { relations: ["tags"] });

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值