Gorm中belong to的坑

官方给出代码如下

// `User` 属于 `Company`,`CompanyID` 是外键
type User struct {
  gorm.Model
  Name      string
  CompanyID int
  Company   Company
}

type Company struct {
  ID   int
  Name string
}

自己实际用到的:

最近项目开发过程中遇到了一个问题,有两个结构体,试题和考题,试题没有分数,考题拥有分数,试题可以被多次选中充当考题,每次充当考题的时候都会有一个分数。对于一个试题来时,第一次被选中充当考题是两分,第二次可能就变成了五分。 使用belong to来表示试题和考题的关系

type SinglePaperQuestion struct {
    global.GVA_MODEL
    ExamQuestionID        uint
    SingleQuestion          ExamQuestion
    Score                   int `json:"score"` //考题
}

type ExamQuestion struct {
    global.GVA_MODEL
    Content          string               `json:"content" gorm:"试题内容"`                   
    Analysis         string               `json:"analysis" gorm:"comment:试题解析"`          
}

然后去创建,一直报错,显示关系出错

最后发现,需要把ExamQuestionID 改成SingleQuestionID ,不能以结构体的名称+ID来作为外键,而是以变量名SingleQuestion + ID 来作为外键。

官网上面

三个完全起的一模一样,所以才被误导了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值