Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在加入TreeRepository而不是一维数组后返回嵌套对象_Javascript_Typescript_Postgresql_Typeorm - Fatal编程技术网

Javascript 在加入TreeRepository而不是一维数组后返回嵌套对象

Javascript 在加入TreeRepository而不是一维数组后返回嵌套对象,javascript,typescript,postgresql,typeorm,Javascript,Typescript,Postgresql,Typeorm,我有两个实体。 1:分支、自引用、, 2:语言 有一个函数getTree(),它应该返回一个嵌套对象,该对象具有完整分支表的树结构以及从brach_到_语言表的属性转换 我所拥有的是一个函数,它返回一个一维数组,其中包含所有具有匹配转换的分支实体 我的职能 async getTree(branchId) { let branchTree = await this.connection .getTreeRepository(Branch) .createQuery

我有两个实体。 1:分支、自引用、, 2:语言

有一个函数getTree(),它应该返回一个嵌套对象,该对象具有完整分支表的树结构以及从brach_到_语言表的属性转换

我所拥有的是一个函数,它返回一个一维数组,其中包含所有具有匹配转换的分支实体

我的职能

 async getTree(branchId) {
    let branchTree = await this.connection
      .getTreeRepository(Branch)
      .createQueryBuilder('branch')
      .innerJoin("branch.branchId", "branchToLanguage")      
      .getMany()

    return branchTree;
  }
商业部门实体如下所示:

@Entity() 
@Tree("closure-table")
export class Branch {
    @PrimaryColumn()
    branchId: string;

    @Column()
    defaultName: string;
    
    @TreeParent()
    parent?: Branch;

    @TreeChildren({ cascade: true })
    children?: Branch[];

    @OneToMany(
        () => BranchToLanguage, 
        branchToLanguage => branchToLanguage.branch
    )
    translations: BranchToLanguage[]

    @BeforeInsert()
    private beforeInsert() {
        this.branchId = ulid();
    }
}

@Entity()
export class BranchToLanguage {
    @PrimaryColumn()
    branchToLanguageId: string;
    
    @ManyToOne(
        () => Branch, 
        branch => branch.translations
    )
    @JoinColumn({ name: 'branchId' })
    branch: Branch;

    @ManyToOne(
        () => Language, 
        language => language.branchToLanguages
    )
    @JoinColumn({ name: "languageId" })
    language: Language;

    @Column()
    translation?: string;

    @BeforeInsert()
    beforeInsert() {
        this.branchToLanguageId = ulid();
    }
}

语言实体如下所示:

@Entity() 
@Tree("closure-table")
export class Branch {
    @PrimaryColumn()
    branchId: string;

    @Column()
    defaultName: string;
    
    @TreeParent()
    parent?: Branch;

    @TreeChildren({ cascade: true })
    children?: Branch[];

    @OneToMany(
        () => BranchToLanguage, 
        branchToLanguage => branchToLanguage.branch
    )
    translations: BranchToLanguage[]

    @BeforeInsert()
    private beforeInsert() {
        this.branchId = ulid();
    }
}

@Entity()
export class BranchToLanguage {
    @PrimaryColumn()
    branchToLanguageId: string;
    
    @ManyToOne(
        () => Branch, 
        branch => branch.translations
    )
    @JoinColumn({ name: 'branchId' })
    branch: Branch;

    @ManyToOne(
        () => Language, 
        language => language.branchToLanguages
    )
    @JoinColumn({ name: "languageId" })
    language: Language;

    @Column()
    translation?: string;

    @BeforeInsert()
    beforeInsert() {
        this.branchToLanguageId = ulid();
    }
}

这是我在Stackoverflow上的第一篇文章。如果我做错了什么,欢迎你批评