一对多关联从一个table获取数据
One-to-many association get data from the one table
我是 Golang 和 Gorm 的新手,我找不到答案。在休息 api 时,我希望我的 json 带有来自一个 table 关系的值。
type Product struct {
gorm.Model
Name string
Description string
Weight string
TypeID uint
}
type Type struct {
ID string `gorm:"primaryKey;"`
Name string
Product []Product
}
我希望我的产品 json 带有来自类型的 ID 和名称。
但这不起作用。
var product Product
id:=1
db.Preload("Type").First(&product, id)
我必须在结构中做这样的事情吗?
type Product struct {
gorm.Model
Name string
Description string
Weight string
Type Type
}
如果要将 Type.ID
和 Type.Name
加载到 Product.ID
和 Product.Name
中,您需要从两个表中专门 select 字段:
var product Product
id:=1
db.Joins("JOIN types ON types.id = products.type_id"). Select("types.id, types.name, products.description, products.weight, products.type_id").First(&product, id)
如果要在Product
结构体中将Type
字段分离成一个单独的字段,需要做如下改动:
type Product struct {
gorm.Model
Name string
Description string
Weight string
TypeID uint
Type Type
}
var product Product
id:=1
db.Preload("Type").First(&product, id)
此处,所有 Type
字段都将加载到 Product.Type
字段中。
我是 Golang 和 Gorm 的新手,我找不到答案。在休息 api 时,我希望我的 json 带有来自一个 table 关系的值。
type Product struct {
gorm.Model
Name string
Description string
Weight string
TypeID uint
}
type Type struct {
ID string `gorm:"primaryKey;"`
Name string
Product []Product
}
我希望我的产品 json 带有来自类型的 ID 和名称。 但这不起作用。
var product Product
id:=1
db.Preload("Type").First(&product, id)
我必须在结构中做这样的事情吗?
type Product struct {
gorm.Model
Name string
Description string
Weight string
Type Type
}
如果要将 Type.ID
和 Type.Name
加载到 Product.ID
和 Product.Name
中,您需要从两个表中专门 select 字段:
var product Product
id:=1
db.Joins("JOIN types ON types.id = products.type_id"). Select("types.id, types.name, products.description, products.weight, products.type_id").First(&product, id)
如果要在Product
结构体中将Type
字段分离成一个单独的字段,需要做如下改动:
type Product struct {
gorm.Model
Name string
Description string
Weight string
TypeID uint
Type Type
}
var product Product
id:=1
db.Preload("Type").First(&product, id)
此处,所有 Type
字段都将加载到 Product.Type
字段中。