TypeORM Query Builder возвращает пустой массив при работе Raw SQL - PullRequest
1 голос
/ 22 апреля 2020

Я пытаюсь выполнить запрос следующего типа, используя 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()

Но! Когда я заменяю getMany() на getSql(), копирую raw 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'

Что-то не так с тем, как я пытаюсь построить этот запрос?

Заранее спасибо за помощь!

1 Ответ

1 голос
/ 22 апреля 2020

.getMany () возвращает тип Promise of Entity [], и, учитывая природу вашего запроса, я подозреваю, что вы вообще не возвращаете сущность. Попробуйте .getRawMany () или .getRawAndEntities ()

...