Typeorm嵌套关系用于自引用实体

时间:2020-09-18 16:12:59

标签: node.js postgresql nestjs typeorm

我具有以下数据库结构:2 table DB structure

问题表通过answers.questionId引用questions.id与答案表链接。

通过answers.parentId引用answers.id引用自引用表。

例如,我有以下数据:

问题表:

questions table entries

答案表

answers table entries

是否有可能得到这样的东西(通过用typeor查询):

[{id: 1, question: "What is my name?", answers: [{ value: "Man" }, { value: "Boss"}] },
 {id: 2, question: "Where I am?", answers: [*{ value: "Country", answers: [{ value: "Ro" }, { value: "En" }] }*, {value:"Iland"}]

我也希望答案具有自引用关系。

我尝试过:

 this.questionsRepo.find({
  relations: ['answers'],
});

但是显然我只能得到问题和答案数组

是否可以对TypeOrm这样的orm做类似的事情?

感谢阅读!

1 个答案:

答案 0 :(得分:1)

我设法修复它。如果有人有类似的问题,则代码如下:

this.questionsRepo
      .createQueryBuilder('questions')
      .leftJoinAndSelect(
        'questions.answers',
        'answer',
        'answer.parentId is NULL',
      )
      .leftJoinAndSelect('answer.children', 'answer2')
      .getMany();