Rumah  >  Soal Jawab  >  teks badan

Kaedah GoLang untuk memuatkan objek bersarang menggunakan GORM

Hai, katakan saya mempunyai 3 struktur dalam format berikut

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 ""
      }
    }
  }
]

Di sini saya mendapat nilai pemilik dengan nilai lalai. Contoh yang diberikan digunakan untuk menerangkan apa yang saya ingin capai.

Saya perlukan cara bagaimana untuk memuatkan struktur pemilik dan nilainya semasa memuatkan pekerja?

Sebarang cadangan akan sangat dihargai dan terima kasih terlebih dahulu

P粉448346289P粉448346289206 hari yang lalu457

membalas semua(2)saya akan balas

  • P粉642920522

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

    Anda boleh menggunakan tag 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
    }

    balas
    0
  • P粉148782096

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

    Ini adalah penyelesaian yang saya temui untuk memuatkan objek bersarang daripada struktur terbenam

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

    balas
    0
  • Batalbalas