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

尝试使用 GORM 联接预加载时出现恐慌

尝试使用 GORM 联接预加载时出现恐慌

Go
Cats萌萌 2022-09-26 20:16:51
我正在尝试使用 go 作为学习项目创建一个简单的 REST API。我在尝试使用 GORM 的预加载功能填充关系时遇到了一个障碍。has manyJoins据我所知,我已经正确设置了关系,表结构在数据库中看起来不错,并且插入了记录,但是以下代码产生了错误:panic: reflect: call of reflect.Value.Field on slice Value我在这里制作了一个最小的示例来显示我的问题package mainimport (    "log"    "gorm.io/driver/postgres"    "gorm.io/gorm")type Page struct {    gorm.Model    Text   string    BookID uint}type Book struct {    gorm.Model    Pages []Page}func main() {    db, err := gorm.Open(postgres.Open("postgres://postgres:password@host.docker.internal:5432/postgres"), &gorm.Config{})    if err != nil {        log.Fatal(err.Error())    }    db.AutoMigrate(&Book{})    db.AutoMigrate(&Page{})    db.Create(&Book{        Pages: []Page{            {Text: "Page One"},        },    })    result := []Book{}    // errors here    db.Joins("Pages").Find(&result)    // works fine    //  db.Preload("Pages").Find(&result)}任何关于我哪里出错的指导将不胜感激,全新的。
查看完整描述

1 回答

?
慕森卡

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

根据文档(加入预加载):

NOTE 适用于一对一关系,例如:,Join Preloadhas onebelongs to


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号