Как получить значение родителя из DataFetchingEnvironment?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить значение родителя из DataFetchingEnvironment?

Сообщение Anonymous »

Я реализовал сервис с GraphQL на spring-boot-starter-graphql
Это простая схема, где поле c зависит от идентификатора B

Код: Выделить всё

type A {
id: Int!
b: [B]
}

type B {
id: Int!
с: C
}

type C {
с: C //depends on id type B
}
Контроллер и загрузчик данных

Код: Выделить всё

@QueryMapping
public A getA(DataFetchingEnvironment environment) {
A a = repo.getA();
int index = 0;
for (B b : a.getB()) {
environment.getGraphQlContext().put(index, b.getId());
index++;
}
return A;
}

@SchemaMapping(field = "c", typeName = "C")
public C getC(DataFetchingEnvironment environment) {
Integer currentIndex = environment.getExecutionStepInfo().getParent().getParent().getPath().getSegmentIndex();
C c = repo2.getC(environment.getGraphQlContext().get(currentIndex));
return c;
}
Я поместил id Type B в GraphQlContext в QueryMapping. Пример: (index, id) -> (0,123) (1,247)
В SchemaMapping у меня есть только Тип C и я не могу получить Тип B , поэтому я использую GraphQlContext.
Могу ли я получить родительские значения (Тип B) из DataFetchingEnvironment без использования GraphQlContext?
Я использую GraphQlContext, но не уверен, что это лучшее решение

Подробнее здесь: https://stackoverflow.com/questions/790 ... nvironment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»