gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:57:10 26 4
gpt4 key购买 nike

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

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

事实上,我想检查用户是否可以通过单独的函数访问具有给定 ID 的实体,而不是仅绑定(bind)到一个实体。

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

最佳答案

您可以获得类似 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>;

所以在 typescript 中可能是:

connection.getRepository<MyEntity>(MyEntity)

关于nestjs - 通过名称(字符串)访问 TypeORM 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64565854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com