GraphQL有一种方法可以在没有显式" ... on"的情况下获得已解析的Union类型字段。查询?

时间:2018-05-17 07:49:22

标签: java graphql-java

我在架构文件中定义了以下Union:

find_package

,例如设置

的此类型定义
union ContentUnion = Content | Setting | Page | Picture

我还有 ContentUnion 的工作类型解析器。

使用此查询

type Setting {
    id: String!
    doctype: String!
    name: String!
}

我能够检索一个值。但这对我来说很奇怪,因为我不明白为什么我必须明确告诉Type是 Setting 。我认为TypeResolver实际上是什么?

我想简单地使用此查询

{ 
 content(id: "113804"){
  ... on Setting{
      id
  }
 }
}

但结果是:

  { 
     content(id: "113804"){
      id
    }
  }

这是因为架构无法在 ContentUnion 联合类型上找到 id 字段,因为它是一个联合。我想知道是否有办法让这个工作呢?因为它会在我的实现中为我消除很多头痛。

1 个答案:

答案 0 :(得分:0)

对不起,您必须使用带有类型片段的查询。

unions in the GraphQL specification,GraphQL联合表示一个对象,该对象可以是GraphQL对象类型列表之一,但不提供这些类型之间的保证字段。 没有字段可以在不使用类型化片段的情况下查询。