mirror of
https://github.com/typeorm/typeorm.git
synced 2025-12-08 21:26:23 +00:00
refactoring query runner - removing provider layer
This commit is contained in:
parent
318d1acd65
commit
caab015e12
@ -326,7 +326,6 @@ export class Connection {
|
||||
throw err;
|
||||
|
||||
} finally {
|
||||
await usedQueryRunnerProvider.release(queryRunner);
|
||||
if (!queryRunnerProvider) // if we used a new query runner provider then release it
|
||||
await usedQueryRunnerProvider.releaseReused(); // todo: why we don't do same in query method?
|
||||
}
|
||||
@ -349,7 +348,8 @@ export class Connection {
|
||||
return await queryRunner.query(query, parameters); // await is needed here because we are using finally
|
||||
|
||||
} finally {
|
||||
await usedQueryRunnerProvider.release(queryRunner);
|
||||
if (!queryRunnerProvider)
|
||||
await usedQueryRunnerProvider.releaseReused();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -562,7 +562,8 @@ export class EntityManager {
|
||||
return await queryRunner.truncate(metadata.tableName); // await is needed here because we are using finally
|
||||
|
||||
} finally {
|
||||
await queryRunnerProvider.release(queryRunner);
|
||||
if (!this.queryRunnerProvider)
|
||||
await queryRunnerProvider.releaseReused();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -68,19 +68,6 @@ export class QueryRunnerProvider {
|
||||
return this.driver.createQueryRunner();
|
||||
}
|
||||
|
||||
/**
|
||||
* Query runner release logic extracted into separated methods intently,
|
||||
* to make possible to create a subclass with its own release query runner logic.
|
||||
* Note: release only query runners that provided by a provide() method.
|
||||
* This is important and by design.
|
||||
*/
|
||||
async release(queryRunner: QueryRunner): Promise<void> {
|
||||
if (queryRunner === this.reusableQueryRunner)
|
||||
return;
|
||||
|
||||
return queryRunner.release();
|
||||
}
|
||||
|
||||
/**
|
||||
* Releases reused query runner.
|
||||
*/
|
||||
|
||||
@ -75,7 +75,7 @@ export class SpecificRepository<Entity extends ObjectLiteral> {
|
||||
const queryRunner = await queryRunnerProvider.provide();
|
||||
await queryRunner.update(table, values, conditions);
|
||||
if (!this.queryRunnerProvider) // means created by this method
|
||||
await queryRunnerProvider.release(queryRunner);
|
||||
await queryRunnerProvider.releaseReused();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +123,7 @@ export class SpecificRepository<Entity extends ObjectLiteral> {
|
||||
const queryRunner = await queryRunnerProvider.provide();
|
||||
await queryRunner.update(table, values, conditions);
|
||||
if (!this.queryRunnerProvider) // means created by this method
|
||||
await queryRunnerProvider.release(queryRunner);
|
||||
await queryRunnerProvider.releaseReused();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -170,7 +170,7 @@ export class SpecificRepository<Entity extends ObjectLiteral> {
|
||||
await Promise.all(insertPromises);
|
||||
|
||||
if (!this.queryRunnerProvider) // means created by this method
|
||||
await queryRunnerProvider.release(queryRunner);
|
||||
await queryRunnerProvider.releaseReused();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -219,7 +219,7 @@ export class SpecificRepository<Entity extends ObjectLiteral> {
|
||||
|
||||
} finally {
|
||||
if (!this.queryRunnerProvider) // means created by this method
|
||||
await queryRunnerProvider.release(queryRunner);
|
||||
await queryRunnerProvider.releaseReused();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user