在嘗試確定哪個 ORM 庫最適合我的需要時,我正在玩 Gorm。值得一提的是,我目前正在使用 Sqlite。按照指南,我創建了兩個結構: type Color struct { gorm.Model UserID uint Name string}//User struct define a basic user modeltype User struct { gorm.Model Username string Email string FirstName string LastName string Password string CreationDate time.Time DOB time.Time IgnoreMe int `gorm:"-"` // Ignore this field Color Color `gorm:"foreignkey:ColorRefer"` ColorRefer uint}當我創建一個數據庫時func CreateTables() {user := dm.User{}color := dm.Color{}GormDB.CreateTable(&color)GormDB.CreateTable(&user)GormDB.Model(&user).AddForeignKey("ColorRefer", "colors(id)", "CASCADE", "CASCADE")}或與:func CreateTables() { GormDB.AutoMigrate(&dm.User{},&dm.Color{})}遺憾的是,它沒有像我期望的那樣工作并自動創建外鍵,但是當我手動創建外鍵時它可以工作。我的主要問題是當我試圖查詢用戶時//QueryByStructExample query users table by the struct non-zero (non-default) fields. func QueryByStructExample(userStruct dm.User) []dm.User { var results []dm.User GormDB.Where(userStruct).Find(&results) return results }我創建了以下函數,試圖通過電子郵件查詢用戶,顏色屬性是我的顏色結構,我嘗試使用模型、相關和關聯函數進行大量操作,但似乎沒有任何效果,而且(我避免有意使用連接)。最終結果是它查詢我的用戶但沒有顏色(只有我的 colorRefer 中的 ID)有什么建議嗎?
1 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
你的意思是預加載 Color 結構?如果是,您是否嘗試過這樣查詢
GormDB.Preload('Color').Where(userStruct).Find(&results)
- 1 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消