mirror of
https://github.com/typeorm/typeorm.git
synced 2025-12-08 21:26:23 +00:00
fixed issues with custom relation names
This commit is contained in:
parent
aaf48f77c7
commit
e7305e9c59
@ -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",
|
||||
|
||||
@ -634,7 +634,7 @@ export class QueryBuilder<Entity> {
|
||||
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<Entity> {
|
||||
|
||||
} 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)) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user