为了账号安全,请及时绑定邮箱和手机立即绑定

查询与“有一个”关联(一对一)

查询与“有一个”关联(一对一)

Go
汪汪一只猫 2023-06-12 16:27:19
在尝试确定哪个 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)


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信