我是Golang和Gorm的新手,找不到anwswer。在rest api中,我希望json带有一个表关系中的值。
type Product struct {
gorm.Model
Name string
Description string
Weight string
TypeID uint
}
type Type struct {
ID string `gorm:"primaryKey;"`
Name string
Product []Product
}
我希望我的Productjson带有Type中的ID和Name。但这行不通。
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
中,则需要从两个表中具体选择字段:
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
字段中。