2017-02-07 95 views
0

我想了解GORM如何與MySQL進行一對一的關係映射。我有2層結構如下所示:使用GORM進行Golang的一對一關係映射

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" 後,結果也是如此。爲什麼上面的代碼不工作?結構定義中是否缺少任何東西?

感謝您的幫助!

回答

0

我不能評論你的問題,所以我想在這裏問它: 你遷移模式以任何方式,如:

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

? 如果你這樣做,你應該在日誌中得到一些詳細的錯誤,這可能對你有用。

+0

是的我已經添加了'db.AutoMigrate(&User {},&UserSession {})',日誌中顯示的錯誤是'(sql:轉換Exec參數#0的類型:不受支持的類型models.User,一個結構體) –