# Working with Query Runner
# What is
QueryRunner instance takes a single connection from connection pool, if RDBMS supports connection pooling.
For databases not supporting connection pools, it uses the same connection across data source.
# Creating a new
createQueryRunner method to create a new
const queryRunner = dataSource.createQueryRunner()
After you create a new instance of
connect method to actually obtain a connection from the connection pool:
const queryRunner = dataSource.createQueryRunner() await queryRunner.connect()
Important: make sure to release it when it is not needed anymore to make it available to the connection pool again:
After connection is released it is not possible to use the query runner methods.
QueryRunner has bunch of methods you can use, it also has it's own
which you can use through
manager property in order to run
EntityManager methods on a particular database connection
const queryRunner = connection.createQueryRunner() // take a connection from the connection pool await queryRunner.connect() // use this particular connection to execut queries const users = await queryRunner.manager.find(User) // don't forget to release connection after you are done using it await queryRunner.release()