Graphql-查询返回null

时间:2019-09-04 09:45:29

标签: graphql graphql-java

我正在使用Java的 graphql-java-annotations 库从我的Spring后端检索数据。

fin = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\1212.osg", "rt")
fout = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\testreecrtiure.osg", "wt")

for line in fin:
             fout.write(line.write("...."))

当我调用查询时,它总是返回null。

这是我的提供者类:

<dependency>
     <groupId>io.github.graphql-java</groupId>
      <artifactId>graphql-java-annotations</artifactId>
      <version>7.1</version>
</dependency>

这是查询:

GraphQLAnnotations graphqlAnnotations = new GraphQLAnnotations();
GraphQLSchema graphQLSchema = newSchema()
            .query(graphqlAnnotations.object(QueryTest.class))
            .build();
this.graphQL = GraphQL.newGraphQL(graphQLSchema).build();

最后是Test.class

@GraphQLName("queryTest")
public class QueryTest {

    @GraphQLField
    public static Test byId(final DataFetchingEnvironment env,         @GraphQLName("id") Long id) {
        return new Test();
    }
}

这是我的电话:

@GraphQLName("Test")
public class Test {

    private String id;
    private String name;

    public Test() {
        this("0");
    }

    public Test(String id) {
        this.setName("Name" + id);
        this.setId(id);
    }

    @GraphQLField
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @GraphQLField
    public String getId() {
        return id;
   }

    public void setId(String id) {
        this.id = id;
    }
}

这就是我得到的结果:

{ 
   "query" : "query queryTest { byId(id: 2) { getId } }",
   "operationName" : "queryTest"
}  

我调试了graphql执行程序,发现该模式包含TestClass和Test。因此,类型和查询是已知的。使用此配置,我没有提取程序或解析程序。

1 个答案:

答案 0 :(得分:0)

找到解决方案:

为了通过AnnotationsSchemaCreator Builder正确创建模式,我不得不更改Provider类:

GraphQLSchema graphQLSchema = AnnotationsSchemaCreator.newAnnotationsSchema()
            .query(QueryTest.class)
            .typeFunction(new ZonedDateTimeFunction())
            .build();

this.graphQL = GraphQL.newGraphQL(graphQLSchema).build();