如果我有这样的类型,如何使用GORM存储嵌入式结构
type A struct {
point GeoPoint
}
type GeoPoint struct {
Lat float64
Lon float64
}
Run Code Online (Sandbox Code Playgroud)
GORM尝试将其添加到新表中,但我想将其添加为另一个字段.
如何才能做到这一点?
对于任何正在寻找将结构放入 GORM 模型并使其自动编组和解组的方法的人。
该解决方案基于chris的回答。它有效!
例如,我想将 Children 数组作为编组 JSON 放入 Parent 中:
type Child struct {
Lat float64
Lng float64
}
type ChildArray []Children
func (sla *ChildArray) Scan(src interface{}) error {
return json.Unmarshal(src.([]byte), &sla)
}
func (sla ChildArray) Value() (driver.Value, error) {
val, err := json.Marshal(sla)
return string(val), err
}
type Parent struct {
*gorm.Model
Childrens ChildArray `gorm:"column:childrens;type:longtext"`
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以试试:
type A struct {
point GeoPoint `gorm:"embedded"`
}
Run Code Online (Sandbox Code Playgroud)