gpt4 book ai didi

sql - golang gorm 多对多反向引用

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

我有这个模型,多对多,我想获得与标签列表匹配的所有 Gif。

type Tag struct {
ID uint `gorm:"primary_key" json:"id,omitempty"`
Name string `gorm:"not null;unique" json:"name,omitempty"`
}
type Gif struct {
ID uint `gorm:"primary_key" json:"id,omitempty"`
Url string `gorm:"not null;unique" json:"url,omitempty"`
Tags []Tag `gorm:"many2many:gif_tags;" json:"tags,omitempty"`
}

我准备了一个 Playground here .

如果我有一个包含 tag1tag2 的标签数组,我想得到 gif1gif2 &gifs 中的。

我多次阅读文档,只发现与我的问题相反,即获取给定 gif 的标签。

我需要更改模型吗?
是否可以在多对多关系中设置两个 Associations 字段?

最佳答案

所以我找到了如何添加反向引用。
我在包含模型的同一个包中创建了两个文件,并为 many2many 添加了具有相同连接表的关联。

tag.go :

type Tag struct {
ID uint `gorm:"primary_key" json:"id,omitempty"`
Name string `gorm:"not null;unique" json:"name,omitempty"`
Gifs []Gif `gorm:"many2many:gif_tags;" json:"gifs,omitempty"`
}

gif.go:

type Gif struct {
ID uint `gorm:"primary_key" json:"id,omitempty"`
Url string `gorm:"not null;unique" json:"url,omitempty"`
Tags []Tag `gorm:"many2many:gif_tags;" json:"tags,omitempty"`
}

它们需要在单独的文件中。

现在我可以轻松访问与标签匹配的所有 gif,反之亦然。

关于sql - golang gorm 多对多反向引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41789498/

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