我得到以下内容,似乎找不到答案。
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();