У меня есть схема (с соответствующими таблицами базы данных и определенными классами сущностей), например
type User {
id: Int!
phoneNumber: String!
}
type Event {
id: Int!
host: User
}
и я пытаюсь использовать Apollo для написания запроса типа
Query{
event(id:1){
host{
firstName
}
}
}
Но я не могу понять, как заставить библиотеку Apollo разрешить тип пользователя в поле хоста в hostId, который хранится в объекте события.
Я изменил событие, чтобы оно возвращало поле hostId, и оно прекрасно работает, но Graphql не разрешит идентификатор для соответствующего типа пользователя. Чего мне не хватает?
edit: отсутствует код резольвера
event: async (parent: any, args: { id: number }) => {
const eventRepository = getConnection().getRepository(Event);
const event = await eventRepository.findOne(args.id);
return event;
},
Мне удалось получить рабочую версию с помощью findOne(args.id, { relations: ['host']})
, но мне это не нравится, потому что это похоже на то, что было бы целесообразно делегировать в Graphql для обработки.