GraphQL Dataloader не работает с библиотеками JAVA - PullRequest
0 голосов
/ 14 ноября 2018

Код создания 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();

Запрос нене удалось решить, в журналах нет ошибок, но, похоже, система зашла в бесконечный цикл, поскольку запрос не завершается даже через несколько минут.

...