为了账号安全,请及时绑定邮箱和手机立即绑定

GORM在插入时不填写外键ID

GORM在插入时不填写外键ID

Go
偶然的你 2022-07-25 10:49:56
我有以下结构:type Player struct {    ID                       uint `gorm:"primarykey"`    ClubID                   uint    Club                     Club}type Club struct {    ID   uint `gorm:"primarykey"`    Name string `gorm:"unique"`}我正在从文件中加载此信息,例如:func TestSQLite(t *testing.T) {    pr, err := db.Init("file:memdb1?mode=memory&cache=shared")    if err != nil {        fmt.Println("Error on Init: " + err.Error())        t.Fail()    }    p := domain.Player{        Club: domain.Club{Name: "Hello"},        Shooting: 23,        PlayerPositions: []domain.Position{            {                Name: "SM",            },        },    }    if err := pr.Create(&p); err != nil {        fmt.Println("Error creating player: " + err.Error())        t.Fail()    }    c := domain.Player{        Club: domain.Club{Name: "Hello"},        Shooting: 23,        PlayerPositions: []domain.Position{            {                Name: "SM",            },        },    }    if err := pr.Create(&c); err != nil {        fmt.Println("Error creating player: " + err.Error())        t.Fail()    }    t.Logf("%d", p.ClubID)    t.Logf("%d", c.ClubID)    if c.ClubID != p.ClubID {        t.Fail()    }}结果我有:    db_test.go:45: 1    db_test.go:46: 0创建代码是    return pr.preload().Debug().Create(&p).Error和预载是func (pr *PlayerRepository) preload() *gorm.DB {    return pr.connection.        Preload("Club")}我不确定我做错了什么。
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

这是一个错误。金珠修好了。

https://github.com/go-gorm/gorm/issues/3890


查看完整回答
反对 回复 2022-07-25
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信