2016-05-17 1 views
1

Structs:golang Gorm et plusieurs tables associations

type (
    User struct{ 
    ID int64 
    Name string 
    } 
    Group struct{ 
    ID int64 
    Name string 
    Users []User 
    } 
) 

I Insérer largeur:

users := []User{} 
user := User{ID: int64(1)} 
gormConn.First(&user) // .Error is nil, user with ID=1 exists 
users = append(users, user) 

group := Group{ 
    Name: "Grrr", 
    Users: users, 
} 
gormConn.Create(&group) 

Mais quand je l'appelle gormConn.Find(&groups), je vais me [{id: 1, name: "Grrr", users: null}] au lieu de [{id: 1, name: "Grrr", users: [{id:1, name: "Usr"}]}]

également dans le tableau SQL groups colonne users introuvable. (tous struct sera gormConn.AutoMigrate)

Répondre

0

Chargement des clés étrangères des tables liées à l'aide ORM est appelé comme Désireuse Chargement. EagerLoading est désactivé par défaut dans GORM en utilisant Find(). Mieux vaut utiliser Preload() pour charger les données imbriquées.

Lien pour la documentation officielle - http://jinzhu.me/gorm/crud.html#preloading-eager-loading