Typescript 是否可以使用@InjectRepository而不在子模块中注册实体?
我有一个根模块,如:Typescript 是否可以使用@InjectRepository而不在子模块中注册实体?,typescript,nestjs,mikro-orm,Typescript,Nestjs,Mikro Orm,我有一个根模块,如: @Module({ imports: [MikroOrmModule.forRoot({ metadataProvider: TsMorphMetadataProvider, entities: ['dist/**/*.entity.js'], entitiesTs: ['src/**/*.entity.ts'], type: 'postgresql' as const, baseDir: path.resolve(__dirna
@Module({
imports: [MikroOrmModule.forRoot({
metadataProvider: TsMorphMetadataProvider,
entities: ['dist/**/*.entity.js'],
entitiesTs: ['src/**/*.entity.ts'],
type: 'postgresql' as const,
baseDir: path.resolve(__dirname, '..'),
...
})],
})
export class AppModule {}
使用此设置,我可以插入EntityManager
,但是@InjectRepository(User)
找不到提供程序
@Injectable()
export class SomeService {
constructor(@InjectRepository(user) userRepository: EntityRepository<User>) {}
}
@Injectable()
导出类服务{
构造函数(@InjectRepository(user)userRepository:EntityRepository){}
}
如果我还将MikroOrmModule.forFeature([User])
插入到根模块中,它将不起作用。如果我将实体移动到一个子模块中,并在那里使用.forFeature
(就像文档中的示例所说的那样),它就会工作
是否可以让
@InjectRepository()
在不需要子模块和手动引用的情况下工作?由于我已经找到了带有blob的实体,因此再次手动引用它们似乎无法达到blob模式的目的。blob模式是告诉ORM所有实体都有哪些以及有哪些连接。forFeature
模式是向Nest注册所有实体,以便Nest可以为它们创建注入令牌。由于它们是独立的进程,因此没有办法只使用其中一个进程。除非MikroOrmModule实现了Nest的自动加载功能(在TypeOrmModule和SequelizeModule上),否则就没有办法只使用globs。4.0有一个自动加载功能,但它似乎不起作用