我正在尝试使用golang在(我的)sql表中创建一个自引用。目前,我的代码如下所示:
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发挥作用?
预先表示感谢:)
发布于 2018-02-15 12:17:47
幸运的是,gorm最近添加了这个特性(参考:这里)。
就你的情况而言,应该是这样:
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"`
}https://stackoverflow.com/questions/44924692
复制相似问题