Объединение сущности с отношениями один-ко-многим - PullRequest
0 голосов
/ 29 апреля 2018

Я использую GORM для построения ассоциаций моделей в Голанге, и у меня есть структура с именем Категория . У категории может быть много дочерних категорий, и у нее может быть родительская категория:

type Category struct {
 Name string `json:"name"`
 Parent Category `json:"parent_category"`
 ParentGroupID uint `json:"parent_group_id"`
 Children []Category `json:"children_categories"`
}

Для этой структуры я получил ошибку для Недопустимый рекурсивный тип Категория . Я проверил документацию GORM, но не нашел там ничего полезного. Любые идеи, как смоделировать такого рода отношения с GORM?

1 Ответ

0 голосов
/ 29 апреля 2018

Вы должны объявить Parent как *Category (указатель на Category) вместо Category.

type Category struct {
 Name string `json:"name"`
 Parent *Category `json:"parent_category"`
 ParentGroupID uint `json:"parent_group_id"`
 Children []Category `json:"children_categories"`
}

Как компилятор узнает, каков размер Parent. Размер указателя известен, но насколько велик тот, который содержит себя? (И внутренняя структура также содержит себя, как и внутренняя внутренняя структура и т. Д.)

Ссылка: https://stackoverflow.com/a/8261789/4794989

...