Наверняка кто-то уже сталкивался с проблемой маппинга выдачи бд в структуры с вложенной иерархией в языке Го. Проблема у меня следующая - есть постгрес бд, есть драйвер pgx, есть запрос, который запрашивает одну сущность и джоинит к ней еще две. Сущности имеют следующую вложенность Game <- Round <- RoundType и выглядят примерно так:
type Game struct {
...
Rounds []Round
}
type Round struct {
...
RoundType RoundType
}
type RoundType struct {
...
}
Сам pgx не предоставляет удобного функционала сканирования результатов выдачи в нужные структуры, поэтому по советам из интернетов я поставил scany, но проблема оказалась в том, что эта либа не умеет маппить результат во вложенные структуры. Можно заэмбеддить одну структуру в другую, но тогда результат маппинга будет плоская структура, а не со вложенностями. Отсюда вопрос тем, кто использует pgx - как вы маппите сложные выдачи бд в структуры с определенным уровнем вложенностей? Я в итоге написал свой маппер для одной из функций, но он получился довольно объемный и в нем легко допустить ошибку, которая не отловится, пока сам не увидишь, что что-то смаппилось не туда, неужели это единственный подход и надо для каждой выдачи писать свой маппер или все таки есть какой то более простой выход из ситуации?