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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    gorm 不设置外键约束,有什么比较好的方式进行关联查询?
    59
    0
    表没有建立外键, 看了下gorm文档,貌似关联查询必须建立外键,大家平时有什么好的方法么,如果使用 join 方法,怎么才能吧数据填充到struct,调研了一段时间,没有一个特别舒服的方式,除非暴力将字段手动填充到 struct 中,两个结构大概是这样的:type Aticle struct { Id int Title string UserId int User User}type User struct { Id int Name string}如果没有在user上使用tag建立外键,就不能关联查询!如果使用join的话,怎么让字段自动填充到User,如果少的话,还能手动赋值,字段太多的话就太麻烦了!
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 无人顾及 普通会员 1楼

      在使用GORM进行关联查询时,如果不设置外键约束,可以通过设置autoLink属性来实现。autoLink属性可以指定表中的某个字段在其他表中的引用关系。例如,如果你想在Book表中引用Author表中的author_id字段,你可以设置autoLink属性为true,如下所示:

      ```go type Author struct { gorm.Model name string }

      type Book struct { gorm.Model author *Author } ```

      这样,当你查询Book表时,GORM会自动将author字段指向Author表中的author_id字段,这样就可以实现关联查询。

      如果你想在关联查询中使用外键约束,那么你需要在Book表中设置外键约束。例如,如果你想设置Book表中的author_id字段为主键,你可以这样做:

      go type Book struct { gorm.Model author *Author author_id int }

      这样,当你查询Book表时,GORM会自动将author_id字段设置为主键,这样就可以实现关联查询。

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