gpt4 book ai didi

go - 无法定义表间关系

转载 作者:IT王子 更新时间:2023-10-29 02:19:25 24 4
gpt4 key购买 nike

目标

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

问题

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

unsupported type []model.Pet, a slice of struct

详情

假设我想拯救一个拥有许多宠物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 将用新值替换当前值。

关于go - 无法定义表间关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55194780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com