From 032e516a46bc2408bc8ec9bdcc8cb71920bf6389 Mon Sep 17 00:00:00 2001 From: Weiko Date: Fri, 10 Nov 2023 18:20:36 +0100 Subject: [PATCH] fix one to many relation dynamic query (#2430) --- .../factories/composite-field-alias.factory.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/src/tenant/query-builder/factories/composite-field-alias.factory.ts b/server/src/tenant/query-builder/factories/composite-field-alias.factory.ts index fd1022410..0fda86d5b 100644 --- a/server/src/tenant/query-builder/factories/composite-field-alias.factory.ts +++ b/server/src/tenant/query-builder/factories/composite-field-alias.factory.ts @@ -64,11 +64,14 @@ export class CompositeFieldAliasFactory { ); } - const targetTableName = relationMetadata.toObjectMetadata.targetTableName; const relationDirection = deduceRelationDirection( fieldMetadata.objectMetadataId, relationMetadata, ); + const targetTableName = + relationDirection == RelationDirection.TO + ? relationMetadata.fromObjectMetadata.targetTableName + : relationMetadata.toObjectMetadata.targetTableName; // If it's a relation destination is of kind MANY, we need to add the collection suffix and extract the args if ( @@ -78,9 +81,8 @@ export class CompositeFieldAliasFactory { const args = getFieldArgumentsByKey(info, fieldKey); const argsString = this.argsStringFactory.create( args, - relationMetadata.toObjectMetadata.fields, + relationMetadata.toObjectMetadata.fields ?? [], ); - return ` ${fieldKey}: ${targetTableName}Collection${ argsString ? `(${argsString})` : '' @@ -88,7 +90,7 @@ export class CompositeFieldAliasFactory { ${this.fieldsStringFactory.createFieldsStringRecursive( info, fieldValue, - relationMetadata.toObjectMetadata.fields, + relationMetadata.toObjectMetadata.fields ?? [], )} } `; @@ -100,7 +102,7 @@ export class CompositeFieldAliasFactory { ${this.fieldsStringFactory.createFieldsStringRecursive( info, fieldValue, - relationMetadata.toObjectMetadata.fields, + relationMetadata.toObjectMetadata.fields ?? [], )} } `;