gpt4 book ai didi

go - 有没有一种方法可以使用 GORM 嵌套预加载来将数组结构预加载到您正在预加载的项目上?

转载 作者:行者123 更新时间:2023-12-02 06:20:01 27 4
gpt4 key购买 nike

我的问题最好用一个简单/相关的例子来描述。考虑到下面的结构,有没有一种方法可以在 GORM 中使用嵌套预加载来填充预加载模型上的数组模型?

type OptionItem struct {
gorm.Model
blah string
}

type OrderItem struct {
gorm.Model

OptionItems []OrderOptionItem

OrderID uint `gorm:"column:order_id"`
Order Order
}

type OrderOptionItem struct {
gorm.Model

OrderItemID uint `gorm:"column:order_item_id""`

OptionItemID uint `gorm:"column:option_item_id"`
OptionItem OptionItem `gorm:"auto_preload"`
}


func getOrderItemsByOrderID(orderID string) {

var orderItems []OrderItem
a.db.DB.
Preload("Order", "id = (?)", orderID).
Preload("OptionItems").
Find(&orderItems)


for _, oi := range orderItems {
for _, ooi := range oi.OptionItems {
// OptionItem on OrderOptionItem is not populated
log.Println(ooi.OptionItem.ID)
}
}
}

最佳答案

您的 OptionItem 上的 gorm 标记无效,应该是 gorm:"preload:true"

或者,您始终可以通过db.Preload("OptionItems.OptionItem")预加载嵌套关联。

关于go - 有没有一种方法可以使用 GORM 嵌套预加载来将数组结构预加载到您正在预加载的项目上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58510735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com