Я новичок в golang gorm и недавно столкнулся с проблемой с ассоциацией.
Я создал такую структуру:
type DeliveryItem struct {
..........
Targets []TargetType `json:"targets" gorm:"foreignkey:FK"`
}
Я создаю структуру с именем TargetType следующим образом:
type TargetType struct {
name string
FK int
}
Итак, если я отправлю некоторые данные с массивом целей, он сначала сохранит данные в таблице элементов доставки (но без данных целей), а затем сохранит цели в отдельной таблице. Все работает с указанной выше структурой.
Однако, если я создаю анонимное поле и помещаю Targets
в анонимное поле, то gorm не вставляет эти целевые данные в таблицу. Похоже, он не распознает связь между DeliveryItem и TargetType.
Вот пример, который не работает (для простоты я не предоставил точный код):
type DeliveryItem struct {
..........
CommonDetails
}
type CommonDetails struct {
................
Targets []TargetType `json:"targets" gorm:"foreignkey:FK"`
}
type TargetType struct {
name string
FK int
}
Пропустил ли я что-нибудь для тега gorm, чтобы он работал, или Gorm не поддерживает такое поведение? Я проверил gorm doc, и он говорит только о первом, который я предоставил, который работает, но я просто хочу знать, можно ли заставить мое неудавшееся дело работать?