一对多关联从一个表中获取数据



我是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.IDType.Name加载到Product.IDProduct.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字段中。

相关内容

  • 没有找到相关文章

最新更新