考虑我有BaseNotification
和ExtendedNotification
结构。
对于某些通知,他们仅使用base_notificaion
表,但其中一些通知会将一些额外的数据保存到extended_notificaion
中。
如何在这两个结构中设置结构标记,以便在我运行时
db.Create(&entendedNotification) // or something else
GORM将知道是否需要在extended_notification
中插入新的元组(例如不是nil
或字段已填写)
当我打电话
db.Preload(`ExtendedNotification`).Find(¬ifications)
它会相应地获取所有必要的实体吗?
答案 0 :(得分:0)
如果您确定A的主键ID是B中的外键,请像这样使用
type A struct{
Id int `gorm:"column:id"`
B []B `gorm:"column:b;ForeignKey:Aid"`
}
type B struct{
Aid int
}
如果没有,我建议使用
func (a *A) AfterFind()error{
return db.Model(&B{}).Find(&a.B).Error
}