Имея схему GraphQL:
type TypeA {
id: ID,
name: String,
other: TypeC
}
type TypeB {
id: ID,
name: String,
other: TypeC
}
Как мне реализовать проводку типа C независимо от типа исходного объекта? Я знаю, что могу сделать:
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) имеют поле ссылки для Type C, как разрешить поле Тип C по заданной ссылке, а не по исходному объекту?