2015-11-21 1 views
0

J'essaie de définir une relation à plusieurs avec ORM gorm. J'ai lu tous les docs encore et encore. Impossible de trouver un moyen de le faire.Golang: gorm ORM a plusieurs relations donnant un résultat vide

func GetUser1(c *gin.Context) { 
    var user models.User 
    var activities models.UserActivity 
    query := DB.Debug().Find(&user, 1).Model(&user).Related(&activities).Error 
    if query != nil { 
     panic(query) 
    } 
    c.JSON(200, &user) 
} 

Mes modèles sont ..

type User struct { 
    Id  int64 
    Username string 
    Password string `json:"-"` 
    Email string `json:",omitempty"` 
    UserActivities []UserActivity 
} 
type UserActivity struct { 
    Id   int64 
    UserId  int64 `json:"-"` 
    ActorId int64 
    CreatedAt time.Time 
} 

Résultats de débogage sont

[2015-11-21 22:21:54] [3.17ms] SELECT * FROM `users` WHERE (`id` = '1') 
[2015-11-21 22:21:54] [1.39ms] SELECT * FROM `user_activities` WHERE (`user_id` = '1') 

Mais je reçois des résultats nuls

{ 
    "Id": 1, 
    "Username": "test1", 
    "Email": "[email protected]", 
    "UserActivities": null 
} 

Toutes les clés primaires et les index sont à droite . J'ai également essayé puttin gorm:"primary_key" et sql:"index" dans UserActivities pas de chance jusqu'à présent. Toutefois, si je remplace UserActivities []UserActivity avec UserActivities UserActivity puis-je obtenir une seule ligne qui semble avoir raison, mais pourquoi UserActivities []UserActivity donner aucun résultat

Répondre

0

utilisation Gorm construit dans le modèle gorm.Model de sorte que vous n'êtes pas déconner la constante

« ID »