Внутренняя ошибка с возвратом идентификатора в GraphQL и MogoDB в Java

Я пытаюсь вставить нового человека в MongoDB с помощью GraphQL. Это работает, насколько все. Затем я могу сделать запрос, и данные все там.

При создании вы можете снова извлечь объект / отдельные данные из объекта. Это также работает за исключением ID. Всякий раз, когда я запрашиваю при создании идентификатора, приходит сообщение о том, что произошла внутренняя ошибка. Для firstName, lastName, дня рождения нет.

Вот соответствующие фрагменты кода:

PersonRepository.java

public class PersonRepository {
private final MongoCollection<Document> persons;

public PersonRepository(MongoCollection<Document> persons) {
    this.persons = persons;
}
// ... Some Code

public Person savePerson(Person person) {
    Document doc = new Document();
    doc.append("firstName", person.getFirstName());
    doc.append("lastName", person.getLastName());
    doc.append("birthday", person.getBirthday());
    persons.insertOne(doc);
    return new Person(
            doc.get("_id").toString(),
            person.getFirstName(),
            person.getLastName(),
            person.getBirthday()
    );

}

private Person person(Document doc) {
    return new Person(
            doc.get("_id").toString(),
            doc.getString("firstName"),
            doc.getString("lastName"),
            doc.getString("birthday"));
}}

Mutation.java

public class Mutation implements GraphQLRootResolver {

private final PersonRepository personRepository;

public Mutation(PersonRepository personRepository) {
    this.personRepository = personRepository;
}

public Person createPerson(String firstName, String lastName, String birthday) {
    Person newPerson = new Person(firstName, lastName, birthday);
    return personRepository.savePerson(newPerson);
}}

schema.graphqls

type Person{
id:ID!
firstName: String!
lastName:String!
birthday:String!
}

type Mutation {
   createPerson(firstName:String!, lastName:String!, birthday:String!): Person
}

Я думаю, что это были все соответствующие фрагменты кода. Я надеюсь, что вы можете продолжать помогать мне там.

РЕДАКТИРОВАТЬ: запрос:

mutation createPerson {
  createPerson(firstName: "fName", lastName: "lName", birthday: "01.01.2000") {
id
}}

0 ответов

Другие вопросы по тегам