postgresql - TypeORM Sorgu Oluşturucu Ham SQL Çalıştığında Boş Dizi Döndürüyor


createQueryBuilder kullanarak aşağıdaki türde bir sorgu çalıştırmaya çalışıyorum. Tüm varlıklarımın doğru şekilde oluşturulduğunu ve birleştirildiğini doğruladım. Ancak, aşağıdaki sorguyu çalıştırmak boş bir dizi döndürüyor:

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()

Ama! getMany() yerine getSql()'i kullandığımda, ham SQL'i kopyalayıp çalıştırdığımda, işe yarıyor! Beklediğim sonucu alıyorum:

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'

Bu sorguyu oluşturmaya çalışırken açıkça yanlış olan bir şey var mı?

Yardımınız için şimdiden teşekkürler!

Cevap #1

.getMany() tür olarak Entity[] Promise döner ve sorgunuzun doğası gereği, hiç entity dönmediğinizi düşünüyorum. .getRawMany() veya .getRawAndEntities() deneyin

Daha fazla detay için QueryBuilder ile ilgili dokümantasyona buradan bakın.

İlgili makaleler