From d797c3d06d16f02baecf2596f5b84f1639cec174 Mon Sep 17 00:00:00 2001 From: Kononnable Date: Sun, 10 Nov 2019 17:28:56 +0100 Subject: [PATCH] proper colum names in ManyToMany relationships --- src/drivers/AbstractDriver.ts | 12 ++++++------ src/templates/entity.mst | 7 +++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/drivers/AbstractDriver.ts b/src/drivers/AbstractDriver.ts index 7682d41..2b0072a 100644 --- a/src/drivers/AbstractDriver.ts +++ b/src/drivers/AbstractDriver.ts @@ -140,18 +140,18 @@ export default abstract class AbstractDriver { joinColumns: junctionEntity.relations[0].joinColumnOptions!.map( (v, i) => { return { - name: v.referencedColumnName, - referencedColumnName: junctionEntity.relations[1] - .joinColumnOptions![i].referencedColumnName + referencedColumnName: v.referencedColumnName, + name: junctionEntity.relations[0] + .joinColumnOptions![i].name }; } ), inverseJoinColumns: junctionEntity.relations[1].joinColumnOptions!.map( (v, i) => { return { - name: v.referencedColumnName, - referencedColumnName: junctionEntity.relations[0] - .joinColumnOptions![i].referencedColumnName + referencedColumnName: v.referencedColumnName, + name: junctionEntity.relations[1] + .joinColumnOptions![i].name }; } ) diff --git a/src/templates/entity.mst b/src/templates/entity.mst index 8cfa03c..1a874c8 100644 --- a/src/templates/entity.mst +++ b/src/templates/entity.mst @@ -8,11 +8,14 @@ import { {{toEntityName .}} } from './{{toFileName .}}' {{#generated}}@PrimaryGeneratedColumn({ type:"{{type}}", {{/generated}}{{^generated}}@Column("{{type}}",{ {{#primary}}primary:{{primary}},{{/primary}}{{/generated}}{{json options}}{{#default}},default: {{.}},{{/default}} }) {{printPropertyVisibility}}{{toPropertyName tscName}}{{strictMode}}:{{tscType}}; +{{/inline}} +{{#*inline "JoinColumnOptions"}} +{ name: "{{name}}", referencedColumnName: "{{toPropertyName referencedColumnName}}" }, {{/inline}} {{#*inline "Relation"}} @{{relationType}}(()=>{{toEntityName relatedTable}},{{toEntityName relatedTable}}=>{{toEntityName relatedTable}}.{{toPropertyName relatedField}}{{#if relationOptions}},{ {{json relationOptions}} }{{/if}}) -{{#if joinColumnOptions}}@JoinColumn([{{#joinColumnOptions}}{ name: "{{name}}", referencedColumnName: "{{toPropertyName referencedColumnName}}" },{{/joinColumnOptions}}]){{/if}} -{{#if joinTableOptions}}@JoinTable({ {{json joinTableOptions}} }){{/if}} +{{#if joinColumnOptions}}@JoinColumn([{{#joinColumnOptions}}{{> JoinColumnOptions}}{{/joinColumnOptions}}]){{/if}} +{{#joinTableOptions}}@JoinTable({ name:"{{name}}", joinColumns:[{{#joinColumns}}{{> JoinColumnOptions}}{{/joinColumns}}],inverseJoinColumns:[{{#inverseJoinColumns}}{{> JoinColumnOptions}}{{/inverseJoinColumns}}],{{#database}}database:"{{.}}",{{/database}}{{#schema}}schema:"{{.}}"{{/schema}} }){{/joinTableOptions}} {{printPropertyVisibility}}{{toPropertyName fieldName}}{{strictMode}}:{{toRelation (toEntityName relatedTable) relationType}}; {{/inline}}