【发布时间】:2017-11-02 21:03:43
【问题描述】:
我有一系列Product 类型的类别。它们只有 3 个,所以我可以为每个创建一个表。让我们称他们为SubProductA、SubProductB 和SubProductC。它们足够不同,以至于将它们存储在父表 Product 中会造成混乱。
所以很自然,我只允许主键成为链接回产品的外键。但是,GORM 似乎无法像这样预加载任何字段。以下是我所拥有的(作为示例)其中之一:
type SubProductA struct {
ProductID uint64 `gorm:"primary_key;ForeignKey:ProductID"`
Product Product
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time
}
但是,当我运行类似
的查询时db.Where("product_id=?", p.ID).Preload("Product").First(&subProduct).Error
结果是:
Can't preload field Product for models.SubProductA。
我怀疑这是因为我也没有正确地将主键识别为外键。但是,我尝试了很多不同的方法,但我得到了同样的错误。
有没有办法让它工作?
【问题讨论】:
标签: go one-to-one go-gorm