/
SqlEntityRepository.ts
41 lines (34 loc) · 1.01 KB
/
SqlEntityRepository.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import type { Knex } from 'knex';
import { EntityRepository, type ConnectionType, type EntityName } from '@mikro-orm/core';
import type { SqlEntityManager } from './SqlEntityManager';
import type { QueryBuilder } from './query';
export class SqlEntityRepository<T extends object> extends EntityRepository<T> {
constructor(protected override readonly em: SqlEntityManager,
entityName: EntityName<T>) {
super(em, entityName);
}
/**
* Creates a QueryBuilder instance
*/
createQueryBuilder(alias?: string): QueryBuilder<T> {
return this.getEntityManager().createQueryBuilder(this.entityName, alias);
}
/**
* Shortcut for `createQueryBuilder()`
*/
qb(alias?: string): QueryBuilder<T> {
return this.createQueryBuilder(alias);
}
/**
* Returns configured knex instance.
*/
getKnex(type?: ConnectionType): Knex {
return this.getEntityManager().getKnex(type);
}
/**
* @inheritDoc
*/
override getEntityManager(): SqlEntityManager {
return this.em;
}
}