Внутренняя ошибка с возвратом идентификатора в 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
}}