小编Jos*_*eph的帖子

TypeORM 数据库锁:请解释如何使用 setLock() 函数在 TypeORM 中使用数据库锁

我想使用 Nestjs 和 TypeORM 在 PostgreSQL 中实现数据库行锁定。请任何人告诉我如何以正确的方式实施它。我尝试使用以下代码,但不确定它是否锁定特定行。

async testFun(): Promise<any> {
        const user = await this.userRepo
                    .createQueryBuilder("user")
                    .useTransaction(true)
                    .setLock("pessimistic_write")
                    .where("id = :id", { id: 2 })
                    .getOne()

        const updateResult: any = await this.userRepo.createQueryBuilder('test')
                                .update()
                                .set({ fullname: "frm3000" })
                                .where("id = :id", { id: 2 })
                                .execute();
        
        return updateResult;
    }
Run Code Online (Sandbox Code Playgroud)

TypeORM 生成的查询是,

query: START TRANSACTION
query: SELECT * FROM "users" "user" WHERE id = $1 FOR UPDATE -- PARAMETERS: [2]      
query: COMMIT
query: UPDATE "users" SET "fullname" = $1 WHERE "id" …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js typescript typeorm nestjs

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

nestjs ×1

node.js ×1

postgresql ×1

typeorm ×1

typescript ×1