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

插入后无法检索任何关系表

插入后无法检索任何关系表

Go
30秒到达战场 2022-09-26 14:48:59
我正在使用 与 ,我有如下所示的表格。我在检索关系表时遇到问题,例如,当我插入新用户时,所有内容都按下面的日志所示插入,但是一旦我尝试检索该用户,那么所有应该是带有外表的字段的字段要么是或。从我在数据库中看到的内容来看,这些表的值入并且实际上已经创建了外键,那么问题可能是什么呢?gormGolangnil[]模型:type User struct {    ID          string `json:"id" gorm:"primaryKey"`    CreatedAt   time.Time    UpdatedAt   time.Time    DeletedAt   gorm.DeletedAt `gorm:"index"`    License     *License       `json:"license"`    Statistics  []*Statistic   `json:"statistics"`    App         *App           `json:"app"`    Disabled    bool           `json:"disabled"`    EncryptedID string         `json:"encrypted_id"`}//1 of the tables that doesn't get found but exists in database after creationtype License struct {    gorm.Model    Key               string  `json:"key"`    DesktopHardwareID string  `json:"desktop_hardware_id"`    MobileHardwareID  *string `json:"mobile_hardware_id"`    Stripe            *Stripe  `json:"stripe" ,gorm:"foreignKey:LicenseID"`    UserID            string  `json:"user_id"`}提前致谢编辑 1 检索行的代码var user models.User//tokens[0] is the ID of the userdb.PostgresClient.Where("id = ?", tokens[0]).First(&user)
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

要从关系表中加载数据,可以使用该函数。Preload

要加载所有第一级关联,您可以执行如下操作:

db.PostgresClient.Preload(clause.Associations).Where("id = ?", tokens[0]).First(&user)

但是,对于嵌套关联,您需要单独执行它们:

db.PostgresClient.Preload("License.Stripe").Where("id = ?", tokens[0]).First(&user)

您可以查看文档以获取更多详细信息。


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

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