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

标签 postgresql go

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

type A struct {
    point GeoPoint
}

type GeoPoint struct {
    Lat float64
    Lon float64
}

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

如何做到这一点?

最佳答案

对于任何正在寻找将 struct 放入 GORM 模型并使其自动编码和解码的方法的人。

此解决方案基于 chris 的回答。它有效!

例如,我想将 Childs 数组放入 Parent 作为编码 JSON:

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"`
}

关于postgresql - 如何使用 GORM 存储嵌入式结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503001/

相关文章:

postgresql - 追加或更改 proc 的返回

google-app-engine - channel api : persistent disconnections and connections

go - 有没有更好的方法来编辑带有消息过期时间间隔的kafka主题?

go - 在 golang 中类型转换重叠结构

postgresql - PostgreSQL 中选择查询返回的删除约束

python - SQL 查询中无法识别的变量(从 CLI 参数分配)

postgresql - 无法从Docker连接到Postgres

c - 从 []byte 到 char*

sql - 为什么我的 SQL 占位符没有被替换(使用 Go pq)?

sql - 在 PostgreSQL 中查找部分匹配条件的行