以前,TypeORM存储库可以扩展并直接注入到服务中,例如:
import { User } from './entities/user.entity';
import { EntityRepository, Repository } from 'typeorm';
@EntityRepository(User)
export class UsersRepo extends Repository<User> {
// my custom repo methods
}
import { Injectable } from '@nestjs/common'
import { UsersRepo } from './users.repo';
@Injectable()
export class UsersService {
constructor(private readonly usersRepo: UsersRepo) {}
}
但是自从 3.0.0 版本,TypeORM 不再支持通过继承来扩展存储库。
在 NestJS 9 中(依赖于 TypeORM 3.+),如何实现这种行为?我想到的唯一解决方案是将自定义方法添加到服务层。但是,我希望将所有与 ORM 相关的方法(查询、聚合等)保留在存储库层。