From 33db45d3fef4a1e7b6088f3a2c2b6fab9fbcbd18 Mon Sep 17 00:00:00 2001 From: Michael Bromley Date: Wed, 3 Apr 2024 14:54:51 +0200 Subject: [PATCH] fix(core): Fix error in joining list query relations --- .../list-query-builder/list-query-builder.ts | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/core/src/service/helpers/list-query-builder/list-query-builder.ts b/packages/core/src/service/helpers/list-query-builder/list-query-builder.ts index 27c9b8262c..8f4bce2edd 100644 --- a/packages/core/src/service/helpers/list-query-builder/list-query-builder.ts +++ b/packages/core/src/service/helpers/list-query-builder/list-query-builder.ts @@ -4,14 +4,12 @@ import { ID, Type } from '@vendure/common/lib/shared-types'; import { unique } from '@vendure/common/lib/unique'; import { Brackets, - EntityMetadata, FindOneOptions, FindOptionsWhere, Repository, SelectQueryBuilder, WhereExpressionBuilder, } from 'typeorm'; -import { EntityTarget } from 'typeorm/common/EntityTarget'; import { BetterSqlite3Driver } from 'typeorm/driver/better-sqlite3/BetterSqlite3Driver'; import { SqljsDriver } from 'typeorm/driver/sqljs/SqljsDriver'; @@ -26,12 +24,12 @@ import { import { ConfigService, CustomFields, Logger } from '../../../config'; import { TransactionalConnection } from '../../../connection'; import { VendureEntity } from '../../../entity'; +import { joinTreeRelationsDynamically } from '../utils/tree-relations-qb-joiner'; import { getColumnMetadata, getEntityAlias } from './connection-utils'; import { getCalculatedColumns } from './get-calculated-columns'; import { parseFilterParams, WhereGroup } from './parse-filter-params'; import { parseSortParams } from './parse-sort-params'; -import { joinTreeRelationsDynamically } from '../utils/tree-relations-qb-joiner'; /** * @description @@ -201,7 +199,10 @@ export type ExtendedListQueryOptions = { */ @Injectable() export class ListQueryBuilder implements OnApplicationBootstrap { - constructor(private connection: TransactionalConnection, private configService: ConfigService) {} + constructor( + private connection: TransactionalConnection, + private configService: ConfigService, + ) {} /** @internal */ onApplicationBootstrap(): any { @@ -369,8 +370,8 @@ export class ListQueryBuilder implements OnApplicationBootstrap { const takeLimit = ignoreQueryLimits ? Number.MAX_SAFE_INTEGER : apiType === 'admin' - ? adminListQueryLimit - : shopListQueryLimit; + ? adminListQueryLimit + : shopListQueryLimit; if (options.take && options.take > takeLimit) { throw new UserInputError('error.list-query-limit-exceeded', { limit: takeLimit }); } @@ -464,12 +465,7 @@ export class ListQueryBuilder implements OnApplicationBootstrap { delete customPropertyMap[property]; return; } - const alias = qb.connection.namingStrategy.joinTableName( - entityMetadata.tableName, - relationMetadata.propertyName, - '', - '', - ); + const alias = `${entityMetadata.tableName}_${relationMetadata.propertyName}`; if (!this.isRelationAlreadyJoined(qb, alias)) { qb.leftJoinAndSelect(`${entityAlias}.${relationMetadata.propertyName}`, alias); }