mysql - 使用 GORM for Golang 的一对一关系映射

标签 mysql go go-gorm

我想了解 GORM 如何与 MySQL 进行一对一的关系映射。我有 2 个这样的结构:

type User struct {
    Id              uint   `gorm:"AUTO_INCREMENT"`
    FirstName       string `gorm:"column:first_name"`
    LastName        string `gorm:"column:last_name"`
    EncryptedUserId string `gorm:"size:255"`
    Email           string `gorm:"not null;unique"`
    Password        string `gorm:"not null;unique"`
    CreatedAt       int64  `gorm:"type(timestamp)"`
}

type UserSession struct {
    Id           uint `gorm:"AUTO_INCREMENT"`
    UserId       User 
    SessionToken string `gorm:"column:session_token"`
    CreatedAt    int64  `gorm:"type(timestamp)"`
}

UserUserSession 共享一对一的关系。但是当运行上面的代码时,UserSession 表的 UserId 列不会被创建。即使在指定外键约束 gorm:"ForeignKey:Id" 之后 结果是一样的。为什么上面的代码不起作用?结构定义中是否缺少任何内容?

最佳答案

我无法评论您的问题,所以我会在这里提问: 您是否以以下任何方式迁移架构:

db.AutoMigrate(&User{}, &UserSession{})

? 如果这样做,您应该会在日志中看到一些详细的错误,这可能对您有用。

关于mysql - 使用 GORM for Golang 的一对一关系映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42083941/

相关文章:

php - 如何从表单中选择要上传到Mysql的表

mysql - 简单插入语句的问题

math - golang 中模拟钟形曲线上的值

pointers - 我如何从golang中的 slice 获取结构指针

php - 使用 AJAX 将多个输入表单字段 POST 到 mySQL db

mysql - 根据外键表中的键对表进行排序

go - 基于字符串断言类型?

mysql - golang gorm 访问底层mysql查询

go - 如何按Gorm中的角色过滤用户?

go - 将时间从 DB 转换为自定义时间失败