例如,我有照片,公司,汽车等实体。我知道它们具有相同名称的列,我可以通过QueryBuilder访问它。我不知道我将处理哪个存储库,但是它像字符串参数一样传递给了我的函数。像这样:
function haveAccess(user, entity, entityId) {
// model is string like 'photo', 'company', 'car'
}
实际上,我想检查用户是否通过不绑定到一个实体的单独功能访问具有给定ID的实体。
是否可以通过某种方式仅通过字符串初始化TypeORM中的Entity Repository或QueryBuilder?
答案 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)