import { ObjectLiteral } from "../common/ObjectLiteral";
|
import { EntityManager } from "../entity-manager/EntityManager";
|
import { Repository } from "./Repository";
|
import { TreeRepository } from "./TreeRepository";
|
import { ObjectType } from "../common/ObjectType";
|
import { SelectQueryBuilder } from "../query-builder/SelectQueryBuilder";
|
/**
|
* Provides abstract class for custom repositories that do not inherit from original orm Repository.
|
* Contains all most-necessary methods to simplify code in the custom repository.
|
* All methods are protected thus not exposed and it allows to create encapsulated custom repository.
|
*
|
* @experimental
|
*/
|
export declare class AbstractRepository<Entity extends ObjectLiteral> {
|
/**
|
* Gets entity manager that allows to perform repository operations with any entity.
|
*/
|
protected manager: EntityManager;
|
/**
|
* Gets the original ORM repository for the entity that is managed by this repository.
|
* If current repository does not manage any entity, then exception will be thrown.
|
*/
|
protected readonly repository: Repository<Entity>;
|
/**
|
* Gets the original ORM tree repository for the entity that is managed by this repository.
|
* If current repository does not manage any entity, then exception will be thrown.
|
*/
|
protected readonly treeRepository: TreeRepository<Entity>;
|
/**
|
* Creates a new query builder for the repository's entity that can be used to build a sql query.
|
* If current repository does not manage any entity, then exception will be thrown.
|
*/
|
protected createQueryBuilder(alias: string): SelectQueryBuilder<Entity>;
|
/**
|
* Creates a new query builder for the given entity that can be used to build a sql query.
|
*/
|
protected createQueryBuilderFor<T>(entity: ObjectType<T>, alias: string): SelectQueryBuilder<T>;
|
/**
|
* Gets the original ORM repository for the given entity class.
|
*/
|
protected getRepositoryFor<T>(entity: ObjectType<T>): Repository<T>;
|
/**
|
* Gets the original ORM tree repository for the given entity class.
|
*/
|
protected getTreeRepositoryFor<T>(entity: ObjectType<T>): TreeRepository<T>;
|
/**
|
* Gets custom repository's managed entity.
|
* If given custom repository does not manage any entity then undefined will be returned.
|
*/
|
private getCustomRepositoryTarget;
|
}
|