Имея проблему с супер простым запросом Gorm по простому отношению many_to_many, у меня есть 3 таблицы в базе данных MYSQL, смоделированные так:
type Product struct {
ID uint `gorm:"unique" json:"id"`
Name string `gorm:"name" json:"name"`
Ingredients []Ingredient `gorm:"many2many:product_ingredients;" json:"ingredients"`
}
type Ingredient struct {
ID uint `gorm:"unique" json:"id"`
Name string `gorm:"name" json:"name"`
}
(и объединяющая таблица)
Я хочу запрос, который выбирает все продукты, в которых ингредиент включен в определенный продукт:
Я могу получить общие запросы со всеми данными, которые делают это:
db.Debug().Preload("Ingredients").Limit(limit).Offset(offset).Find(&products)
Но пытаясь что-то сделатькак это
db.Debug().Preload("Ingredients").Limit(limit).Offset(offset).Where(Ingredient{Name: "Chicken"}).Find(&products)
Дает мне Ошибка 1054: Неизвестный столбец 'ингридиенты.имя' в 'предложении где'
Я ожидаю возврата только тех продуктов, в которых в качестве ингредиента используется курица.
Кто-нибудь может помочь?
Это должно быть довольно просто, но я не могу найти ни одного варианта использования, подобного этому, и документы довольно запутанные.