如何使用GORM存储嵌入式结构?

Jav*_*ano 9 postgresql go

如果我有这样的类型,如何使用GORM存储嵌入式结构

type A struct {
    point GeoPoint
}

type GeoPoint struct {
    Lat float64
    Lon float64
}
Run Code Online (Sandbox Code Playgroud)

GORM尝试将其添加到新表中,但我想将其添加为另一个字段.

如何才能做到这一点?

Mue*_*wre 6

对于任何正在寻找将结构放入 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)