2017-07-05 19 views
0

私はgolang gormを使って(my)sqlテーブルに自己参照を作成しようとしています。現時点では私のコードは次のようになります。gorm golang one2many same table

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を使用して動作させる方法を知っていますか?事前に

多くの感謝:)

答えて

1

幸いGORMは最近、この機能(:here参照)を追加しました。あなたのケースでは

は次のようにする必要があります:

type Person struct { 
    gorm.Model 
    Name string 
    Children []*Person `gorm:"many2many: children;association_jointable_foreignkey:children_id"` 
} 
関連する問題