拥有 GraphQL 架构:
type TypeA {
id: ID,
name: String,
other: TypeC
}
type TypeB {
id: ID,
name: String,
other: TypeC
}
我应该如何独立于源对象类型实现 TypeC 接线?我知道我可以做到:
RuntimeWiring.newRuntimeWiring()
.type(TypeRuntimeWiring.newTypeWiring("TypeA")
.dataFetcher("other", dataFetcher_typeC.get())
.type(TypeRuntimeWiring.newTypeWiring("TypeB")
.dataFetcher("other", dataFetcher_typeC.get())
.build()
但随后数据获取器依赖于源对象类型:
DataFetcher<CompletableFuture<Collection<TypeC>>> get() {
return dataFetchingEnvironment -> {
<??> sourceObj = dataFetchingEnvironment.getSource();
return getObject(sourceObj.someProperty);
};
}
鉴于 POJO(TypeA 和 TypeB)都具有对 TypeC 的引用字段,如何通过给定的引用而不是源对象来解析 TypeC 字段?