我有一个带有某种 MVC 架构的 gin-gonic 网络应用程序。我创建了几个模型,它们都嵌入了一个通用结构:
type User struct {
ID int
Name string
}
type Admin struct {
User
Level int
}
... {
User
}
现在我想将它们以 json 格式存储在数据库中。我想要完成的目标是只编写一个函数/方法来编组任何模型并将其保存到数据库中。此方法必须编组当前模型的所有字段,不仅来自 User 结构,例如 User 必须编组到{id: 1, name: "zhora"},而 Admin 将进入{id: 1, name: "gena", level: 2}。
像这个:
func (i *User) Save() {
data, err := json.Marshal(i)
check(err)
if i.ID == 0 {
_, err = app.DB.Exec(`INSERT INTO users(data) VALUES ($1) `, string(data))
} else {
_, err = app.DB.Exec(`UPDATE users SET data = $1 WHERE id=$2`, string(data), i.ID)
}
check(err)
}
现在我必须将它复制/粘贴func到每个模型文件中,只更改方法接收器。这可以避免吗?
慕娘9325324
相关分类