Heim  >  Fragen und Antworten  >  Hauptteil

GoLang-Methode zum Laden verschachtelter Objekte mithilfe von GORM

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粉448346289P粉448346289206 Tage vor456

Antworte allen(2)Ich werde antworten

  • P粉642920522

    P粉6429205222024-03-28 11:06:30

    您可以使用 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
    }

    Antwort
    0
  • P粉148782096

    P粉1487820962024-03-28 00:24:16

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

    db.Preload("Company").Preload("Company.Owner").Find(&Employees)
    

    Antwort
    0
  • StornierenAntwort