From e7305e9c593f9973cb89028d86a79b40163b671d Mon Sep 17 00:00:00 2001 From: Umed Khudoiberdiev Date: Mon, 23 May 2016 18:15:55 +0500 Subject: [PATCH] fixed issues with custom relation names --- package.json | 2 +- src/query-builder/QueryBuilder.ts | 4 ++-- src/query-builder/alias/AliasMap.ts | 4 ++-- .../transformer/RawSqlResultsToEntityTransformer.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 878a2a63b..20b3eb862 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "typeorm", "private": true, - "version": "0.0.2-alpha.25", + "version": "0.0.2-alpha.26", "description": "Data-mapper ORM for Typescript", "license": "Apache-2.0", "readmeFilename": "README.md", diff --git a/src/query-builder/QueryBuilder.ts b/src/query-builder/QueryBuilder.ts index 4e5732f36..8ec3cb395 100644 --- a/src/query-builder/QueryBuilder.ts +++ b/src/query-builder/QueryBuilder.ts @@ -634,7 +634,7 @@ export class QueryBuilder { throw new Error(`Alias "${parentAlias}" was not found`); const parentMetadata = this.aliasMap.getEntityMetadataByAlias(foundAlias); - const relation = parentMetadata.findRelationWithDbName(join.alias.parentPropertyName); + const relation = parentMetadata.findRelationWithPropertyName(join.alias.parentPropertyName); const junctionMetadata = relation.junctionEntityMetadata; const appendedCondition = join.condition ? " AND " + join.condition : ""; @@ -660,7 +660,7 @@ export class QueryBuilder { } else if (relation.isManyToOne || (relation.isOneToOne && relation.isOwning)) { const joinTableColumn = relation.joinColumn.referencedColumn.name; - const condition = join.alias.name + "." + joinTableColumn + "=" + parentAlias + "." + join.alias.parentPropertyName; + const condition = join.alias.name + "." + joinTableColumn + "=" + parentAlias + "." + relation.name; return " " + joinType + " JOIN " + joinTableName + " " + join.alias.name + " " + join.conditionType + " " + condition + appendedCondition; } else if (relation.isOneToMany || (relation.isOneToOne && !relation.isOwning)) { diff --git a/src/query-builder/alias/AliasMap.ts b/src/query-builder/alias/AliasMap.ts index fd8f2865b..1e8313510 100644 --- a/src/query-builder/alias/AliasMap.ts +++ b/src/query-builder/alias/AliasMap.ts @@ -68,10 +68,10 @@ export class AliasMap { throw new Error(`Alias "${alias.parentAliasName}" was not found`); const parentEntityMetadata = this.getEntityMetadataByAlias(parentAlias); - if (!parentEntityMetadata.hasRelationWithDbName(alias.parentPropertyName)) + if (!parentEntityMetadata.hasRelationWithPropertyName(alias.parentPropertyName)) throw new Error("Relation metadata for " + alias.parentAliasName + "#" + alias.parentPropertyName + " was not found."); - const relation = parentEntityMetadata.findRelationWithDbName(alias.parentPropertyName); + const relation = parentEntityMetadata.findRelationWithPropertyName(alias.parentPropertyName); return relation.inverseEntityMetadata; } diff --git a/src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts b/src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts index d2b53f00a..5c2daf8f6 100644 --- a/src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts +++ b/src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts @@ -79,7 +79,7 @@ export class RawSqlResultsToEntityTransformer { // if relation is loaded then go into it recursively and transform its values too metadata.relations.forEach(relation => { - const relationAlias = this.aliasMap.findAliasByParent(alias.name, relation.name); + const relationAlias = this.aliasMap.findAliasByParent(alias.name, relation.propertyName); if (relationAlias) { const joinMapping = this.joinMappings.find(joinMapping => joinMapping.alias === relationAlias); const relatedEntities = this.groupAndTransform(rawSqlResults, relationAlias);