TypeORM:如何 运行 SELECT... 在 queryRunner 中进行更新?

TypeORM: How to run SELECT... FOR UPDATE inside queryRunner?

如何在 queryRunner 中 运行 SELECT... FOR UPDATE ? 我看到 queryRunner 只能访问 manager 的 TypeORM 文档,我如何访问 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 -----------------");

欢迎任何建议!

Yupp,实际上我们可以从 manager 访问 Repository,问题已解决

        users = await queryRunner.manager
          .getRepository(User)
          .createQueryBuilder("user")
          .useTransaction(true)
          .setLock("pessimistic_write")
          .where("user.status = :status", { status: status })
          .getMany();