我得到以下内容,似乎找不到答案。

Error [ValidationError{validationErrorType=FieldUndefined, queryPath=[find_by_id], message=Validation error of type FieldUndefined: Field 'find_by_id' in type 'Query' is undefined @ 'find_by_id', locations=[SourceLocation{line=1, column=2}], description='Field 'find_by_id' in type 'Query' is undefined'}]

我的代码。

询问
@GraphQLQuery(name = "find_by_id")
public Event findById(@GraphQLArgument(name = "id") Long id) {

模式生成
@EJB
private EventFacade eventFacade; // Normal stateless bean

GraphQLSchema guestSchema = new GraphQLSchemaGenerator()
            .withOperationsFromSingleton(eventFacade)
            .withValueMapperFactory(new JacksonValueMapperFactory())
            .withDefaults()
            .generate();

GraphQL graphQL = GraphQL.newGraphQL(guestSchema).build();

要执行的代码
String query = "{find_by_id (id: 1){eventName}}";
ExecutionResult result = graphQL.execute(query);

使用SPQR lib

事件POJO是基本的,eventName作为字符串,并且是来自抽象(父)类的ID。实体类位于另一个jar(实体Jar)中。执行查询和构建模式的代码在EJB Jar中。

任何帮助/指示我做错了,将不胜感激。

更新
创建了一个git问题来帮助解决Git Issue

最佳答案

我在这里找到此解决方案:https://github.com/leangen/graphql-spqr/wiki/Errors#ambiguous-member-type



这应该为您工作。

    GraphQLSchema schema = new GraphQLSchemaGenerator()
           .withBasePackages(basePackages)
           .withTypeTransformer(new DefaultTypeTransformer(true, true))
           .withOperationsFromSingleton(eventFacade).generate();

09-12 12:04