TypeORM: создать класс BaseRepository - PullRequest
2 голосов
/ 20 марта 2020

Как создать baseRepository класс, расширяющий Репозиторий TypeORM

    import { Repository } from 'typeorm';

    export abstract class BaseRepo extends Repository<T> {

        public getAll () { ... }

        public getOneById (id: number) { ... }

        public deleteById (id: number) { ... }

    }

, а затем наследовать такие методы, как

    @EntityRepository(User)
    export class UserRepo extends BaseRepo<User> {

        constructor (baseRepo: BaseRepo) {
            super();
            this.__baseRepo = baseRepo;
        }

        public getOne (id: number) {
            return __baseRepo.getOneById(id);
        }
    }

1 Ответ

0 голосов
/ 28 марта 2020

Это решение работает без constructor

import { Repository } from "typeorm";

export class BaseRepo<T> extends Repository<T> {

   getOneById(id: string) { ... }

}

и используется как

import { EntityRepository } from "typeorm";
import { BaseRepo } from "../shared/BaseRepo";
import { User } from "../entities/User";

@EntityRepository(User)
export class MyEntityRepository extends BaseRepo<User> { }
...