猿问

GORM 在插入时不填充外键 ID

我有以下结构:


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")

}

我不确定我做错了什么。


aluckdog
浏览 161回答 1
1回答

忽然笑

这是一个错误。金珠修修好了。https://github.com/go-gorm/gorm/issues/3890
随时随地看视频慕课网APP

相关分类

Go
我要回答