2017-07-15 7 views
0

を選択:全体の構造を得るためのすべての私の試みは常に失敗しGolang GORM以下のモデルを想像し、すべての依存関係

type (

    Account struct { 
     gorm.Model 

     CustomID string `gorm:"index;unique"` 
     Name string 
     Profiles []*Profiles `gorm:"ForeignKey:AccountID"` 
    } 

    Profile struct { 
     gorm.Model 

     AccountID uint `gorm:"index"` 
     TheFoo *Foo 
     TheDoo *Doo 
    } 

    Foo struct { 
     ProfileID uint `gorm:"index"` 
     Boo string 
    } 

    Doo struct { 
     ProfileID uint `gorm:"index"` 
     Moo string 
    } 
) 

を。 accは常にアカウントデータのみで満たされ、プロファイルはありません。

私はこのdb.Model(&acc).Related(&Profile{})のものとexpereimentedでも、まだ成功しません。 (かなり悪いと言えば)ドキュメントもこれを明確にしていません。

var acc Account 
db.Find(&acc, "custom_id = ?", myCustomID) 

あなたは実際にどのようにこれを行いますか?

答えて

0

関連する関数を呼び出すときにコードを追加できますか? http://jinzhu.me/gorm/associations.html#has-many何がたくさんあるのか見ていたら、このように見えるはずです。

私はつまり、あなたがNEをサポート Preloadメソッドを使用することができると信じて
var acc Account 
db.Find(&acc, "custom_id = ?", myCustomID) 
db.Model(&acc).Related(&profiles) 
+0

実際には期待された結果がありますが、他のORMと同様に組み立てることができます。 そうでなければ、他の関係を正しく取得するためにプロファイルを反復する必要がありますか? – Danilo

1

account := new(Account) 
db.Preload("Profiles.TheDoo").Preload("Profiles.TheFoo").Find(account, "custom_id = ?", myCustomID) 

あなたが実際にもProfilesをプリロードする必要がある場合、私はまだチェックしていませんが、それは損はありませんもしそれがあなたが判明すればそれを使用する。

関連する問題