为了账号安全,请及时绑定邮箱和手机立即绑定

“有很多”关系给出空结果

“有很多”关系给出空结果

Go
www说 2021-11-22 18:31:44
我试图定义与 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 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

使用 gorm 内置模型 gorm.Model 这样你就不会弄乱“ID”常量


查看完整回答
反对 回复 2021-11-22
?
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


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信