我正在执行以下代码,结果是:
{TestPojo={id=null, name=null}}
我期待的结果是{TestPojo={id="1", name="Jack"}}
。我错过了什么?
import static graphql.Scalars.GraphQLString;
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
import static graphql.schema.GraphQLObjectType.newObject;
import java.util.Map;
import graphql.GraphQL;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import graphql.schema.GraphQLObjectType;
import graphql.schema.GraphQLSchema;
public class HelloWorld {
public static void main(String[] args) {
// sub schema to be added to parent schema
GraphQLObjectType testPojo = newObject().name("TestPojo")
.description("This is a test POJO")
.field(newFieldDefinition().name("id").type(GraphQLString).build())
.field(newFieldDefinition().name("name").type(GraphQLString).build())
.build();
// parent schema
GraphQLObjectType queryType = newObject().name("helloWorldQuery")
.field(newFieldDefinition().name(testPojo.getName())
.type(testPojo)
.dataFetcher(new DataFetcher() {
@Override
public Object get(DataFetchingEnvironment arg0) {
Object a = new GrapgQLSampleController()
.greeting2();
return a;
}
})
.build())
.build();
GraphQLSchema schema = GraphQLSchema.newSchema().query(queryType).build();
Map<String, Object> result = (Map<String, Object>) new GraphQL(schema).execute("{TestPojo {id,name}}")
.getData();
System.out.println(result);
// Prints: {TestPojo={id=null, name=null}}
}
/**
* service method 2
*
* @return
*/
public TestPojo greeting2() {
return new TestPojo("1", "Jack");
}
// inner pojo
class TestPojo {
public String id;
public String name;
TestPojo(String id, String name) {
this.id = id;
this.name = name;
}
}
}