Nestjs 通过it访问TypeORM存储库';s名称(字符串)

Nestjs 通过it访问TypeORM存储库';s名称(字符串),nestjs,typeorm,Nestjs,Typeorm,例如,我有照片、公司、汽车等实体。我知道它们有同名的列,我可以通过QueryBuilder访问它们。我不知道我将处理哪个存储库,但它像字符串参数一样传递给我的函数。像这样: function haveAccess(user, entity, entityId) { // model is string like 'photo', 'company', 'car' } 事实上,我想检查用户是否可以通过单独的函数访问具有给定ID的实体,而不是仅绑定到一个实体 是否可以通过某种方式通过字符串初始化

例如,我有照片、公司、汽车等实体。我知道它们有同名的列,我可以通过QueryBuilder访问它们。我不知道我将处理哪个存储库,但它像字符串参数一样传递给我的函数。像这样:

function haveAccess(user, entity, entityId) {
 // model is string like 'photo', 'company', 'car'
}
事实上,我想检查用户是否可以通过单独的函数访问具有给定ID的实体,而不是仅绑定到一个实体


是否可以通过某种方式通过字符串初始化TypeORM中实体的存储库或QueryBuilder?

您可以获得如下存储库:

connection.getRepository()
可以接受三种内容,一个对象(用
@Entity
注释)、一个EntitySchema或一个字符串

getRepository<Entity>(target: ObjectType<Entity> | EntitySchema<Entity> | string): Repository<Entity>;
getRepository(目标:ObjectType | EntitySchema | string):存储库;
所以在typescript中,可以是:

connection.getRepository<MyEntity>(MyEntity)
connection.getRepository(MyEntity)

const users=await repository.createQueryBuilder(entity).where(“user.name=:name”,{name::John}).getMany()
connection.getRepository<MyEntity>(MyEntity)