我需要从在那里status != Complete的db获取所有模块。

我的模块表与节表有很多映射,节表与字段表有很多映射。

我正在尝试使用以下语句在单个数据库查询中获取所有模块。

dbConnection.Set("gorm:auto_preload", true).Where("status != ?", enum.Completed).Find(&modules)

但是它不返回节和字段。
如果我使用下面的语句,那么它将返回嵌套模型。
dbConnection.Set("gorm:auto_preload", true).Where("status != ?", enum.Completed).First(&modules)

这是否意味着它仅适用于单个记录而不适用于收集?

最佳答案

使用dbConnection.Set("gorm:auto_preload", true),您只能加载子关系,但是如果您也要加载子关系,则必须使用嵌套预加载。喜欢

db.Preload("Sections").Preload("Sections.Fields").Find(&modules)

关于go - gorm预加载不适用于对象集合吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60912780/

10-12 00:21
查看更多