typeorm无法检索存储库

时间:2019-03-01 16:08:38

标签: typeorm

我有一个用于typeorm库的包装器类,其中包含许多功能。

用于检索已持久保存的数据的所有get函数都可以与getRepository一起正确运行。

但是当我想动态获取存储库时,typeorm告诉我:

  

错误:找不到“平台”的存储库。看起来该实体未在当前“默认”中注册

但是我创建了一个init()函数,该函数将向我返回相同的连接类型(如果存在)或创建的连接类型如下:

async init()
{
    let connection

    if (!typeorm.getConnectionManager().has('default'))
    {
        connection = await this.createConnection()
    }
    else
    {
        connection = typeorm.getConnectionManager().get('default')
    }

    return connection
}

和createConnection()函数创建名称为“ default”的对象连接,如下所示:

createConnection()
{
    return typeorm.createConnection({
        name: 'default',
        type: 'sqlite',
        database: './src/data/mydb.sql',
        entities: [
            Public,
            Genre,
            Platform,
            Theme,
            Game,
        ],
        synchronize: true
    })
}

连接管理器类中可以正确获取存储库的函数:

async getAll(entity)
{
    let connection = await this.init()
    let model = this.selectEntityModel(entity)

    const entityRepository = typeorm.getRepository(model)

    return entityRepository.createQueryBuilder("query").getMany()
}

另一个无法正确获取存储库:

selectEntityRepository(entity)
{
    let repository

    switch (entity)
    {
        case 'public':
            repository = typeorm.getRepository(Public)
            break
        case 'genre':
            repository = typeorm.getRepository(Genre)
            break
        case 'theme':
            repository = typeorm.getRepository(Theme)
            break
        case 'platform':
            repository = typeorm.getRepository(Platform)
            break
        case 'game':
            repository = typeorm.getRepository(Game)
            break
    }

    return repository
}

您可以在此处查看整个类的声明:Gist

我不明白为什么该类中的几个函数都无法获取Repository,而其他函数却不能。

错误typeorm告诉我,要检索存储库的连接名称为“默认”,并且我以“单一”样式为所有实体声明创建了“默认”连接,以始终获得相同的连接。

0 个答案:

没有答案
相关问题