假设我有 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 值。给定的例子是为了描述我想要达到的目标。当我加载员工时,我需要一种方法如何加载 Owner 结构及其值?任何建议将不胜感激,并在此先感谢
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
您可以使用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
}
HUX布斯
TA贡献1876条经验 获得超6个赞
这是我发现的从嵌入式结构加载嵌套对象的解决方案
db.Preload("Company").Preload("Company.Owner").Find(&Employees)- 2 回答
- 0 关注
- 315 浏览
添加回答
举报
0/150
提交
取消
