Graphql UndefinedFragment类型的验证错误:Undefined fragment

Graphql UndefinedFragment类型的验证错误:Undefined fragment,graphql,graphql-java,Graphql,Graphql Java,我有一个graphql jave v8.0应用程序在Spring boot v1.5.10上运行,我正试图利用graphql的特性获取有限数量的字段,其模式类型定义如下: type School { id: ID name: String address: String age: String jobTitle: String ... } fragment UserFields on School { age jobTitle } type

我有一个graphql jave v8.0应用程序在Spring boot v1.5.10上运行,我正试图利用graphql的特性获取有限数量的字段,其模式类型定义如下:

type School {
   id: ID
   name: String
   address: String 
   age: String
   jobTitle: String 
   ...
}

fragment UserFields on School {
   age
   jobTitle
}

type Query {
  user (id: String!): School!
}

schema {
  query: Query
}
执行此查询时:

{
   user (id: "123")
   {
     ... UserFields 
   }
}
预期结果应该是:

{
  "user": {
     "age": "12",
     "jobTitle": "student"
  }
}
但是,它会导致以下错误

    "message": "Validation error of type UndefinedFragment: Undefined fragment 
     UserFields @ 'user'",
当然,我可以通过在查询中显式地传递字段名来实现这一点,但是为了举例,我对利用GraphQL的片段特性感兴趣


你知道我做错了什么吗?

模式中没有定义片段,它们允许你在构建复杂查询时创建抽象-主要目的是让你在查询的多个部分中查询同一类型时避免重复,片段未在架构中定义,但在查询中是临时定义的:

{
   user (id: "123") {
     ... UserFields 
   }
}

fragment UserFields on School {
   age
   jobTitle
}
像这里这样的无条件片段用于避免重复。想象一下,在多个地方,您希望在同一操作中选择年龄和职务

另一方面,条件片段用于根据具体接口实现或联合子类型进行条件选择