Создание микросервиса в java с использованием -
spring-boot версии 2.2.6.RELEASE graphql-spring-boot-starter версии 5.0.2
Попытка сохранить запись в MongoDB используя мутацию graphql, я успешно сохранил один объект, как показано ниже -
type ParentElement {
id: ID!
type: String
child: String
}
Но при попытке с вложенным объектом я вижу следующую ошибку -
Вызвано: com.coxautodev.graphql .tools.SchemaError: Ожидается, что тип 'ChildElement' будет GraphQLInputType, но это не так! Разрешен ли тип только для типов объектов, неправильно использованных в качестве типа ввода, или наоборот? 1015 *
@Document(collection="custom_element")
public class ParentElement {
private String id;
private String type;
private ChildElement child;
}
public class ChildElement {
private String make;
private String model;
}
@Component
public class ElementMutation implements GraphQLMutationResolver {
private ElementRepository elementRepository;
public ElementMutation(ElementRepository elementRepository) {
this.elementRepository = elementRepository;
}
public ParentElement createElement(String id, String type, ChildElement child) {
ParentElement element = new ParentElement()
elementRepository.save(element);
return element;
}
}
@Component
public class ElementQuery implements GraphQLQueryResolver {
private ElementRepository elementRepository;
@Autowired
public ElementQuery(ElementRepository elementRepository) {
this.elementRepository = elementRepository;
}
public Iterable<ParentElement> findAllElements() {
return elementRepository.findAll();
}
}
@Repository
public interface ElementRepository extends MongoRepository<ParentElement, String>{
}
Я хочу сохранить следующее json представление в mon go db -
{
"id": "custom_id",
"type": "custom_type",
"child": {
"make": "custom_make",
"model": "Toyota V6",
}
}
Я пробовал несколько вещей, но при запуске сервера всегда получалось одно и то же исключение. Приведенный выше json является простым представлением. Я хочу сохранить гораздо более сложный вариант, разница с другими примерами, доступными в Интернете, заключается в том, что я не хочу создавать отдельный объект mon go для дочернего элемента, как показано в примере Book-Author, доступном в Интернете.