Код создания My Dataloader: -
public DataLoaderRegistry buildDataLoaders(){
return new DataLoaderRegistry().register("books",DataLoader.newDataLoader(userBatchLoader));
}
BatchLoader<String, Book> userBatchLoader = new BatchLoader<String, Book>() {
@Override
public CompletionStage<List<Book>> load(List<String> isbnList) {
return CompletableFuture.supplyAsync(() -> {
return bookManager.loadBookByISBN(isbnList);
});
}
};
Загрузчик данных добавлен в контексте как
ExecutionResult executionResult=graphQLService.getGraphQL().execute(ExecutionInput.newExecutionInput()
.query(graphQLQuery)
.context(graphQLService.buildDataLoaders())
.build());
Код сборщика данных для загрузки данных
DataLoaderRegistry loaders = environment.getContext();
List<String> list=new ArrayList<String>();
list.add(environment.getArgument("id"));
return (Book)loaders.getDataLoader("books").load(list).get();
Запрос нене удалось решить, в журналах нет ошибок, но, похоже, система зашла в бесконечный цикл, поскольку запрос не завершается даже через несколько минут.