Поля объектов "многие-ко-многим" не сопоставлены с объектом - PullRequest
0 голосов
/ 04 августа 2020

У меня проблемы с прикреплением связанных данных к объекту модели с помощью 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

Что мне не хватает, я думаю, это что-то с сопоставлением имен, но это просто угадай?

...