首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gorm gorm有一个多个

gorm gorm有一个多个
EN

Stack Overflow用户
提问于 2022-02-14 08:41:07
回答 1查看 202关注 0票数 0

我很难为多个引用同一个表的注释找到正确的注释。就像这样:

代码语言:javascript
复制
type Pet struct {
    gorm.Model
    Name string
}

type PetOwner struct {
    gorm.Model
    LargestPet *Pet
    SmallestPet *Pet
    AllOthers []*Pet
}

有人知道哪些注释和哪些显式id字段可以让它工作吗?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-15 13:46:31

我的工作如下:

代码语言:javascript
复制
type PetOwner struct {
    gorm.Model
    LargestPetID uint
    LargetPet *Pet `gorm:"foreignKey:LargestPetID`
    SmallestPetID uint
    SmallestPet *Pet `gorm:"foreignKey:SmallestPetID`
    AllOthers []*Pet
}

然后按以下方式加载数据:

代码语言:javascript
复制
var petOwner PetOwner
db.Joins("AllOthers").Joins("SmallestPet").Joins("LargestPet").Find(&petOwner)

如果您想从宠物的主人那里访问它是最大的宠物,您可以修改宠物定义如下:

代码语言:javascript
复制
type Pet struct {
    gorm.Model
    ...
    LargestPetOf *PetOwner `gorm:"foreignKey:LargestPetID"
}

然后用一个.Join("LargestPetOf")加载这个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71109098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档