簡體   English   中英

GoLang 如何使用 GORM 加載嵌套對象

[英]GoLang How to load nested objects using GORM

嗨,假設我有以下格式的 3 個結構

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

在這里,我使用默認值獲取 Owner 值。 給定的示例用於描述我想要達到的目標。

我需要一種在加載員工時如何加載所有者結構及其值的方法?

任何建議將不勝感激並提前感謝

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

這是我發現的從嵌入式結構加載嵌套對象的解決方案

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM