I am using Amplify and everything worked fine until now. I built a schema where I have a many-to-many relationship and when I get the data with Datastore the result is not what I expected.
Those are my dependencies
https://i.stack.imgur.com/kH5yo.png
My schema looks like this:
type Question @model {
  id: ID!
  name: String!
  answers: [QuestionAnswer] @connection(keyName: "byQuestion", fields: ["id"])
}
type QuestionAnswer
  @model(queries: null)
  @key(name: "byQuestion", fields: ["questionID", "answerID"])
  @key(name: "byAnswer", fields: ["answerID", "questionID"]) {
  id: ID!
  questionID: ID!
  answerID: ID!
  question: Question! @connection(fields: ["questionID"])
  answer: Answer! @connection(fields: ["answerID"])
}
type Answer @model {
  id: ID!
  name: String!
  questions: [QuestionAnswer] @connection(keyName: "byAnswer", fields: ["id"])
}
The depth is currently 5 but I've tried with 10 and I have the same problem.
If I try to query from AppSync like this :
[it works][1]
I get this:
   "data": {
     "syncQuestionAnswers": {
        "items": [
          {
            "question": {
            "name": "How are you?",
            "answers": {
                "items": [
                  {
                    "answer": {
                      "name": "Good"
                    }
                },
                {
                    "answer": {
                      "name": "Bad"
                    }
                }
              ]
            }
          }
        },
        {
          "question": {
             "name": "How are you?",
             "answers": {
               "items": [
                  {
                    "answer": {
                      "name": "Good"
                    }
                  },
                  {
                    "answer": {
                      "name": "Bad"
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    }
The question will appear 2 times, because I have 2 answers assigned to it.
However when I use Datastore on the QuestionAnswer model:
async getQuestions() {
  this.questions = await DataStore.query(QuestionAnswer);
  console.log(this.questions);
}
I get this:
https://i.stack.imgur.com/mijQB.png
Not exactly what I wanted.
What I would like to happen when I query the data it would be this:
  "question": {
    "name": "How are you?",
    "answers": {
      "items": [
        {
          "answer": {
            "name": "Good"
          }
        },
        {
          "answer": {
            "name": "Bad"
          }
        }
      ]
    }
  }
If I'm doing something wrong please tell me what because I'm going crazy :)