我怎么能跑SELECT... FOR UPDATE进去queryRunner 呢?我看到queryRunner只能访问的TypeORM文档manager,我如何访问Repository锁定记录。例如queryRunner.getRepository(User).setLock("pessimistic_write").....
console.log("----------------- START TRANSACTION -----------------");
const queryRunner = connection.createQueryRunner();
// establish real database connection using our new query runner
await queryRunner.connect();
await queryRunner.startTransaction();
try {
// `SELECT....FOR UPDATE`
// Want to .setLock("pessimistic_write")
// commit transaction now:
await queryRunner.commitTransaction();
} catch (err) {
// since we have errors lets rollback changes we made
await queryRunner.rollbackTransaction();
} finally {
// you need to release query runner which is manually created:
await queryRunner.release();
}
console.log("----------------- FINISH TRANSACTION -----------------");
Run Code Online (Sandbox Code Playgroud)
欢迎任何建议!
是的,实际上我们可以Repository从访问manager,问题解决了
users = await queryRunner.manager
.getRepository(User)
.createQueryBuilder("user")
.useTransaction(true)
.setLock("pessimistic_write")
.where("user.status = :status", { status: status })
.getMany();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6630 次 |
| 最近记录: |