refactoring query runner - removing provider layer

This commit is contained in:
Umed Khudoiberdiev 2017-06-14 00:06:36 +05:00
parent 318d1acd65
commit caab015e12
4 changed files with 8 additions and 20 deletions

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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.
*/

View File

@ -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();
}
}