У меня проблемы с прикреплением связанных данных к объекту модели с помощью GORM. Моя настройка выглядит следующим образом.
type Domain struct {
Id uuid.UUID `gorm:"type:uuid;column:id"`
Name string `gorm:"type:varchar(200);column:name"`
Systems []System `gorm:"many2many:domain_system"`
}
func (Domain) TableName() string {
return "domain"
}
type System struct {
Id uuid.UUID `gorm:"type:uuid;column:id"`
Name string `gorm:"type:varchar(200);column:name"`
Domains []Domain `gorm:"many2many:domain_system"`
}
func (System) TableName() string {
return "system"
}
, чем я использую эту функцию для печати Domain
с его Systems
func ReadDomain(db *gorm.DB) {
var domain Domain
var systems []System
db.Model(&domain).Related(&systems, "Systems")
error := db.Preload("Systems").Where("id = ?", "29C6E75B-5DF0-4AA5-B6B8-6CCBA6FD8A06").Find(&domain).Error
if error != nil {
fmt.Println(error)
}
fmt.Println(domain)
}
, и результат
{5be7c629-f05d-a54a-b6b8-6ccba6fd8a06 Domain 1 []}
, но у него должно быть 3 связанных Systems
вместо []
Проблема не связана с данными, вы можете видеть это на изображении ниже
[Состояние базы данных - очень просто, взгляните] https://i.stack.imgur.com/qIBEv.png
Что мне не хватает, я думаю, это что-то с сопоставлением имен, но это просто угадай?