通过名称(字符串)访问TypeORM存储库

时间:2020-10-28 02:55:29

标签: nestjs typeorm

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

function haveAccess(user, entity, entityId) {
 // model is string like 'photo', 'company', 'car'
}

实际上,我想检查用户是否通过不绑定到一个实体的单独功能访问具有给定ID的实体。

是否可以通过某种方式仅通过字符串初始化TypeORM中的Entity Repository或QueryBuilder?

1 个答案:

答案 0 :(得分:0)

您可以获得类似this的存储库:

import {getRepository} from "typeorm";
import {User} from "./entity/User"; 

const userRepository = getRepository(User); // you can also get it via getConnection().getRepository() or getManager().getRepository()

connection.getRepository()可以采取三件事:一个对象(用@Entity注释),一个EntitySchema或一个字符串。

getRepository<Entity>(target: ObjectType<Entity> | EntitySchema<Entity> | string): Repository<Entity>;

因此在打字稿中可能是:

connection.getRepository<MyEntity>(MyEntity)
相关问题