Мой вопрос лучше всего описать на простом / актуальном примере. Учитывая приведенные ниже структуры, можно ли использовать вложенную предварительную загрузку в 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)
}
}
}