账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    gorm的Related和Association的区别是什么?
    • 2020-01-01 00:00
    • 11
    56
    0

    有如下结构:

    type User struct {
        gorm.Model
        Name string
        Company []Company
    }
    
    type Company struct {
        gorm.Model
        Job    string
        User   User
        UserID int
    }
    
    
        var user User
        var company []Company
    
        user.ID = 1
    
        db.Model(&user).Related(&company)
        db.Model(&user).Association("company").Find(&company)
    

    使用Related和Association都可以查询出来关联的company的数据.那他们的差异是什么呢?### 题目描述

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 杀戮之心 普通会员 1楼

      gorm 是一个用于ORM(对象关系映射)的Go语言库。RelatedAssociation 是两种不同的ORM模式。

      1. RelatedRelated 是一个可以用于数据库查询的对象模型。它类似于 SQL 的JOIN 查询,但是在ORM层面上进行处理。Related 使用 gorm.Model 类型表示一个数据库对象,而不是一个 SQL 查询对象。Related 可以用于关联多个数据库对象,也可以用于关联多个数据表。在 Related 中,你可以使用 select() 方法来指定你想要查询的字段,使用 where() 方法来指定你想要查询的条件。

      2. AssociationAssociation 是一个关联对象模型。它类似于 SQL 的JOIN 查询,但是在ORM层面上进行处理。Association 使用 gorm.Model 类型表示一个数据库对象,而不是一个 SQL 查询对象。Association 可以用于关联多个数据库对象,也可以用于关联多个数据表。在 Association 中,你可以使用 model 方法来获取关联对象,使用 where() 方法来指定你想要查询的条件。

      总的来说,Related 更侧重于查询对象的使用,而 Association 更侧重于关联对象的使用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部