Типоорм вложенные отношения для элемента с самостоятельной ссылкой

#node.js #postgresql #nestjs #typeorm

#node.js #postgresql #nestjs #typeorm

Вопрос:

У меня есть следующая структура базы данных: структура базы данных из 2 таблиц

Таблица вопросов связана с таблицей ответов через answers.questionId ссылки questions.id .

На таблицу, ссылающуюся на себя, ссылаются через answers.parentId ссылки answers.id .

Например, у меня есть следующие данные:

Таблица вопросов:

записи таблицы вопросов

Таблица ответов

отвечает на записи таблицы

Возможно ли получить что-то подобное (путем запроса с помощью 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'],
});
  

Но, очевидно, я получаю только массив вопросов и ответов

Возможно ли сделать что-то подобное с orm, подобным TypeORM?

Спасибо, что прочитали это!

Ответ №1:

Мне удается это исправить. Если у кого-то есть похожие проблемы, вот код:

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