gorm:稍后获取关系(无需预加载)

gorm: fetch relation later (without preloading)

我知道我可以预加载模型中定义的关系,但是如果我有一个未预加载的对象,我还没有找到如何稍后加载关系的方法。

样本:

type Template struct {
    ID uint `gorm:"primary_key"`
    Name     string
    UserID *uint
    User   *User `gorm:"foreignkey:UserID"`
}

现在我可以:

db.Preload("User").Find(&templates)

但是如果我只想稍后获取用户怎么办?

db.First(&template)
assert.Nil(template.User)
//how to fetch the user now?
...
assert.NotNil(template.User)

感谢提示。

遵循文档中的 find associations 指南:

db.First(&template)
assert.Nil(template.User)
//how to fetch the user now?
db.Model(&template).Association("User").Find(template.User)
assert.NotNil(template.User)