嗨,假設(shè)我有 3 個(gè)采用以下格式的結(jié)構(gòu)
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 "" } } } ]
這里我得到了具有默認(rèn)值的所有者值。 給出的示例用于描述我想要達(dá)到的目標(biāo)。
我需要一種方法,如何在加載員工時(shí)加載所有者結(jié)構(gòu)及其值?
如有任何建議,我們將不勝感激,并提前致謝
您可以使用 gorm:"embedded"
標(biāo)簽:
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 }
這是我發(fā)現(xiàn)的從嵌入式結(jié)構(gòu)加載嵌套對(duì)象的解決方案
db.Preload("Company").Preload("Company.Owner").Find(&Employees)