我试图定义与 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')但我得到空结果{ "Id": 1, "Username": "test1", "Email": "test1@friesen.com", "UserActivities": null}所有的主键和索引都是正确的。我也曾尝试puttingorm:"primary_key"并sql:"index"在UserActivities至今没有运气。但是,如果我替换UserActivities []UserActivity为UserActivities UserActivity然后我只会得到一行似乎是正确的但为什么UserActivities []UserActivity没有给出结果
2 回答
GCT1015
TA贡献1827条经验 获得超4个赞
您的问题的解决方案非常简单。
而不是查询
var user models.User
var activities models.UserActivity
query := DB.Debug().Find(&user, 1).Model(&user).Related(&activities).Error
只是查询
var user models.User
query := DB.Debug().Find(&user, 1).Model(&user).Related(&user.UserActivities).Error
- 2 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消