小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《定义表间关系时遇到问题》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
问题内容目标
我正在尝试与 gorm 建立一个简单的 has_many
关联:一个人有很多宠物。
问题
当我尝试保存 person
模型时,我看到以下错误。
不支持的类型 []model.pet,结构体切片
详细信息
假设我想保存一个包含许多 pets
的 person
。
type person struct {
uuid `gorm:"primary_key" json:"uuid"`
pet []pet `gorm:"foreignkey:personuuid:association_foreignkey:uuid"`
}
type pet struct {
uuid `gorm:"primary_key" json:"uuid"`
personuuid string
}
然后我尝试创建这两个模型。
personuuid := "dcf4b3c6-d94c-4b2c-9d66-1cbaedd2cc44"
pets := []pet{
pet{
uuid: "..",
personuuid: personuuid,
}
}
person := person{
uuid: personuuid,
pet: pet,
}
db.where("uuid = ?", person.uuid).update(&person)
然后我收到以下错误。
sql: converting argument $1 type: unsupported type []model.Pet, a slice of struct
知道为什么会发生这种情况吗?
解决方案
我发现只有当您使用 Update
而不是 Save
时才会发生这种情况。
这很奇怪,因为两者应该以相同的方式工作,除了 Update
将尝试保存不同的字段,而 Save
将用新值替换当前值。
终于介绍完啦!小伙伴们,这篇关于《定义表间关系时遇到问题》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!