在尝试确定哪个 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 关注
- 124 浏览
添加回答
举报
0/150
提交
取消