0

gorm ORM との一対多の関係を定義しようとしています。私はすべてのドキュメントを何度も読みました。それを行う方法が見つかりませんでした。

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)
}

私のモデルは..

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
}

デバッグ結果は

[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')

しかし、私はnullの結果を得ています

{
    "Id": 1,
    "Username": "test1",
    "Email": "test1@friesen.com",
    "UserActivities": null
}

主キーとインデックスはすべて正しいです。私も puttingorm:"primary_key"を試しsql:"index"ましたUserActivitiesが、これまでのところうまくいきませんでした。ただし、次のように置き換えるUserActivities []UserActivityUserActivities UserActivity、正しいと思われる行が1つしか得られませんが、なぜUserActivities []UserActivity結果が得られないのですか

4

2 に答える 2