首页 文章

使用GORM进行Golang的一对一关系映射

提问于
浏览
0

我试图了解GORM如何与MySQL进行一对一的关系映射 . 我有两个这样的结构:

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" 之后,结果也是相同的 . 为什么上面的代码不起作用?结构定义中是否缺少任何内容?

1 回答

  • 0

    我不能评论你的问题所以我会在这里问:你是否以任何方式迁移你的架构:

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

    ?如果这样做,您应该在日志中获得一些详细错误,这可能对您有用 .

相关问题