ZBLOG

gorm 多对多关联表带条件的查询

假设我们有两个表 usersroles,它们之间的关系是多对多。那么我们可以通过一个中间表 user_roles 来描述它们的关系。

下面是一个简单的用户和角色的模型:

type User struct {
    gorm.Model
    Name   string
    Roles  []*Role `gorm:"many2many:user_roles"`
}

type Role struct {
    gorm.Model
    Name   string
    Users  []*User `gorm:"many2many:user_roles"`
}

其中 User.RolesRole.Users 都是多对多关联。关联通过中间表来实现,并且在结构体定义时使用了特殊标签来声明。

如果我们要查询所有拥有某个角色的用户,可以通过以下代码来实现:

var users []*User

db.Preload("Roles", "name = ?", "admin").Find(&users)

上述代码中,我们使用了 GORM 的预加载功能(Preload) 来同时获取用户和他们拥有的角色。而带条件查询则是通过在预加载函数中指定额外参数(如 "name = ?", "admin")实现的。

注意:这里 "admin" 是一个示例值,请根据实际情况替换成你需要查询的角色名称。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6033

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?