GoLang-Methode zum Laden verschachtelter Objekte mithilfe von GORM
P粉448346289
P粉448346289 2024-03-27 13:20:01
0
2
505

Hallo, nehmen wir an, ich habe 3 Strukturen im folgenden Format

type Employee struct {
  Id int
  Name string
  CompanyId int `gorm:"column:companyId"`
  Company Company `gorm:"foreignKey:CompanyId"`
}

type Company struct {
  Id int
  CompanyName string
  OwnerId `gorm:"column:owner"`
  Owner Owner `gorm:"foreignKey:OwnerId"`
}

type Owner struct {
  Id int
  Name string
  Age int
  Email string
}

func (E Employee) GetAllEmployees() ([]Employee, error) {
  Employees := []Employee
  db.Preload("Company").Find(&Employees)
}

// -- -- There response will be like

[
  {
    id: 1
    name: "codernadir"
    company: {
      id: 5
      company_name: "Company"
      owner: {
        id 0
        Name ""
        Age 0
        Email ""
      }
    }
  }
]

Hier habe ich den Besitzerwert mit Standardwert erhalten. Anhand des angegebenen Beispiels soll beschrieben werden, was ich erreichen möchte.

Ich brauche eine Möglichkeit, die Eigentümerstruktur und ihren Wert beim Laden von Mitarbeitern zu laden?

Für Vorschläge wäre ich sehr dankbar und danke im Voraus

P粉448346289
P粉448346289

Antworte allen(2)
P粉642920522

您可以使用 gorm:"embedded" 标签:

type Employee struct {
  Id int
  Name string
  CompanyId int `gorm:"column:companyId"`
  Company Company `gorm:"embedded"`
}

type Company struct {
  Id int
  CompanyName string
  OwnerId `gorm:"column:owner"`
  Owner Owner `gorm:"embedded"`
}

type Owner struct {
  Id int
  Name string
  Age int
  Email string
}
P粉148782096

这是我发现的从嵌入式结构加载嵌套对象的解决方案

db.Preload("Company").Preload("Company.Owner").Find(&Employees)
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage