gorm golang有两张相同的桌子吗
我正在尝试使用golang gorm在(我的)sql表中创建一个自引用。目前,我的代码如下所示:gorm golang有两张相同的桌子吗,go,go-gorm,Go,Go Gorm,我正在尝试使用golang gorm在(我的)sql表中创建一个自引用。目前,我的代码如下所示: type Person struct { gorm.Model Name string Children []*Person `gorm:"ForeignKey:ParentID"` ParentID uint } func main() { /* code to get database connection omitted */ p := &a
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")
}
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"`
}
代码失败,出现错误“reflect.Value.Set using unaddressable Value”
有人知道如何使用go gorm来维持这种关系吗
非常感谢:)幸运的是,gorm最近添加了此功能(参考:) 在您的情况下,应该是这样的:
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")
}
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"`
}
幸运的是,gorm最近添加了此功能(参考:) 在您的情况下,应该是这样的:
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")
}
type Person struct {
gorm.Model
Name string
Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"`
}