在一个简单的many_to_many关系上有一个超级简单的Gorm查询问题,我在MYSQL DB中有3个表,其建模方式如下:
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:“ where子句”中的未知列“ ingredients.name”
我希望只退回以鸡肉为原料的产品。
有人可以帮助吗?
这应该很简单,但是我找不到像这样的用例,文档也相当混乱。