Javascript 在加入TreeRepository而不是一维数组后返回嵌套对象
我有两个实体。 1:分支、自引用、, 2:语言 有一个函数getTree(),它应该返回一个嵌套对象,该对象具有完整分支表的树结构以及从brach_到_语言表的属性转换 我所拥有的是一个函数,它返回一个一维数组,其中包含所有具有匹配转换的分支实体 我的职能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
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上的第一篇文章。如果我做错了什么,欢迎你批评