Dataloader для атрибутов, не находящихся на верхнем уровне, не работает
Я использую платформу Netflix DGS для создания службы java graphqQL. Я попытался использовать загрузчик данных (https://netflix.github.io/dgs/data-loaders/), и он отлично работает, пока родительский тип является атрибутом верхнего уровня (т.е. непосредственным дочерним элементом Query).
Например, рассмотрим следующую схему:
type Person{
location: Location
preferences: Preferences
}
type Location {
x: Int
}
type Preferences {
typeA: TypeAPreferences
typeB: TypeBPreferences
}
Если я попытаюсь использовать загрузчик данных для дочернего элемента уровня 1, он будет работать нормально, например:
@DgsData(parentType = "Person" field="location")
public Location loadLocation(DgsDatafetchingEnvironment dfe){
... //use data loader here
Однако, если родительский тип не является уровнем 1, загрузчик данных никогда не вызывается (ошибки не возникают). Пример:
@DgsData(parentType = "Preferences" field="typeA")
public TypeAPreferences loadTypeAPreferences(DgsDatafetchingEnvironment dfe){
... //use data loader here
Хотите знать, смогли ли другие успешно выполнить эту работу, и есть ли что-то, чего мне здесь не хватает, из-за чего она не работает?
1 ответ
Я просто делал что-то глупое - у меня были неправильно заполнены родительский тип и атрибуты поля.