登录
首页 >  Golang >  Go问答

定义表间关系时遇到问题

来源:stackoverflow

时间:2024-03-29 23:48:36 345浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《定义表间关系时遇到问题》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

目标

我正在尝试与 gorm 建立一个简单的 has_many 关联:一个人有很多宠物。

问题

当我尝试保存 person 模型时,我看到以下错误。

不支持的类型 []model.pet,结构体切片

详细信息

假设我想保存一个包含许多 petsperson

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学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>