TypeORM 查询生成器在原始 SQL 工作时返回空数组

Ale*_*hur 4 postgresql typescript typeorm

我正在尝试使用createQueryBuilder. 我已经验证我的所有实体都已正确创建和加入。但是,运行以下命令会返回一个空数组:

let apiKey = await getConnection()
    .createQueryBuilder()
    .from(ApiKey, "apiKey")
    .innerJoinAndSelect("apiKey.site", "site")
    .where("site.domain = :domain", { domain: "mysitename.com" })
    .andWhere("apiKey.key = :key", { key })
    .getMany()
Run Code Online (Sandbox Code Playgroud)

但!当我替换getMany()getSql(),复制原始 SQL 并运行它时,它起作用了!我得到了我预期的结果:

SELECT "site"."id" AS "site_id", "site"."domain" AS "site_domain", "site"."name" AS "site_name", "site"."createdAt" AS "site_createdAt", "site"."apiKeyId" AS "site_apiKeyId", "site"."userId" AS "site_userId" FROM "api_key" "apiKey" INNER JOIN "site" "site" ON "site"."id"="apiKey"."siteId" WHERE "site"."domain" = 'mysitename.com'
Run Code Online (Sandbox Code Playgroud)

我尝试构建此查询的方式有什么明显错误吗?

在此先感谢您的帮助!

msc*_*son 12

.getMany() 返回 Entity[] 的类型 Promise,并且考虑到您查询的性质,我怀疑您根本没有返回实体。尝试 .getRawMany() 或 .getRawAndEntities()

  • 这有效!您是否有关于如何制作该查询以返回一个或多个实体而不是原始结果的任何资源/文档? (3认同)