333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
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
42
43
44
45
46
47
48
49
50
51
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;
}