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)
我知道我可以预加载模型中定义的关系,但是如果我有一个未预加载的对象,我还没有找到如何稍后加载关系的方法。
样本:
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)