gorm golang one2many同一张表
问题描述:
我想在使用golang gorm的(my)sql表中创建一个自引用。目前我的代码看起来是这样的:gorm golang one2many同一张表
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"ForeignKey:ParentID"`
ParentID uint
}
func main() {
/* code to get database connection omitted */
p := &Person{Name:"Sally"}
db.Create(p)
children := []*Person{ {Name:"Jane", ParentID:p.ID},
{Name:"Tom", ParentID:p.ID}}
for _, child := range children {
db.Create(child)
}
var children2 []*Person
db.Model(p).Related(children2, "ParentID")
}
的代码是一个错误“reflect.Value.Set使用不可寻址值”失败。
有没有人知道如何使用go gorm获得这种关系?
提前感谢:)
答
幸运格姆近来添加了这个功能(参考:here)。
在你的情况应该是这样的:
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"`
}