草庐IT

go - 在 GORM 中创建关联记录?

我正在做一个项目,对Golang还比较陌生。我正在为我的数据库ORM使用GORM。我不知道我做错了什么,但我无法创建关联记录。type(Taskstruct{gorm.ModelTitlestring`json:"title"`Descriptionstring`json:"description"`PriorityPriority`json:"priority_id"validate:"required"gorm:"foreignkey:PriorityID"`PriorityIDuint}Prioritystruct{gorm.ModelNamestring`json:"name"

go - 无法在 GORM 中设置 has-many 关联

我正在尝试在User和PredictionsBag之间建立关联。我的问题是,如果我使用GORM的假定名称来引用对象,一切正常,但我想稍微更改一下名称。typeUserstruct{gorm.Model//We’lltrynotusingusernamesfornowEmailstring`gorm:"notnull;unique_index"`Passwordstring`gorm:"-"`PasswordHashstring`gorm:"notnull"`Rememberstring`gorm:"-"`//Auser’sremembertoken.RememberHashstring

go - gorm rest API 中的模式搜索

我想在搜索和字典顺序的基础上获取名单。我已经使用“like”关键字在数据库中进行了类似的搜索,但我不知道如何获取所需的顺序。funcSearchByName(db*gorm.DB)func(c*gin.Context){returnfunc(c*gin.Context){varuemail=c.Param("rexed")varrnex[]resource//Parammatchesyourregex//c.JSON(200,rnex)iferr:=db.Where("nameLIKE?","%uemail%").Find(&rnex).Error;err!=nil{c.AbortWi

json - Go-Gorm 中的深层嵌套结构

我正在使用Gorm和PostgreSQL在Go上创建一个http服务,我遇到了一些奇怪的事情。我有一个图书馆的三层嵌套模型:typePagestruct{IDint64`sql:"auto_increment"json:"-"`Numberint64`json:"number"`BookBook`gorm:"foreignkey:book_id"json:"-"`BookIDint64`json:"book_id"`Textstring`json:"text"`}typeBookstruct{IDint64`sql:"auto_increment"json:"-"`ShelfPlace

sqlite - 使用 sqlite 的 gorm.Model 时区配置

我正在使用带有sqlite的gorm。我的模型包括gorm.Model,因此gorm会为我处理created_at,...但默认情况下它会使用本地时间保存所有审核日期(例如“2019-08-1217:45:39.356009+02:00”)。有没有办法为自动生成的字段强制使用UTC?该行为是基于gorm本身还是基于底层sql数据库? 最佳答案 如果您仔细阅读代码,您会发现delted_at、created_at和updated_at字段由函数控制gorm.NowFunclink.根据文档://gorm.NowFunc=func()t

go - 如何使查询结果结构与我在 GORM Select 上声明的结构相匹配

我想让查询结果的结构与我在GORMSelect中声明的结构相匹配,因为现在它只与Struct结构相匹配。我如何让它工作?提前谢谢你我已经尝试制作新的Struct并且它有效,但我不知道它是否是最佳实践typeUserstruct{User_Iduint`json:"user_id"gorm:"column:user_id;PRIMARY_KEY"`Emailstring`json:"email"`Passwordstring`json:"password"`Tokenstring`json:"token"gorm:"-"`}funcGetUsers()map[string]interfa

postgresql - GORM 创建可能已经存在的记录

我正在使用gorm在我的Go应用程序中使用postgres。我想在数据库中创建一个新用户,但该用户很可能已经存在。如果是这样,我不想对数据库做任何事情,但我想知道它以便告诉用户。好消息是,这已经是gorm.Create(..)做。尝试使用重复的唯一键创建记录将返回错误。有两个问题:我想要更好的错误信息。我想编写针对“此电子邮件地址已存在”与“存在实际内部错误”的自定义面向用户的错误消息。除了尝试解析Create()返回的错误字符串外,我不知道如何区分这两个事件,这似乎很容易出错。我不想弄乱我的日志。使用已存在的对象调用Create()会将错误消息记录到标准输出。我真的不认为这是一个“错

go - 如何使用 gorm 的反射类型来泛化 api 函数

我正在使用go-gorm开发一个包含大量模型的API。到目前为止,对于“GetAll”函数,我一直在使用以下(简化):funcGetAllUsers(w,r){//...getparamsanddosomecheckpages:=[]*models.User{}//但我想避免复制/粘贴函数以仅修改类型(此处为models.User)以从db获取所有模型。我确实尝试过使用反射或接口(interface)的不同方法,但似乎都没有效果:funcGenericGetAll(whttp.ResponseWriter,r*http.Request,datainterface{}){dtype:=r

go - 如何让多个模型在 gorm 中自动迁移

我可以看到我们像这样自动迁移的文档,db.AutoMigrate(&model.TheTodo{})如果我们有很多倍数模型怎么办?db.AutoMigrate(&model.TheTodo{}、&model.TheBlog{}、&model.Employee{}以及更多......)如果我们这样放置,gorm会创建那个表吗?是否有任何方法可以使AutoMigrate内部变短?db.AutoMigrate(allmodels)这可能吗? 最佳答案 一种选择是将结构嵌套在AutoMigrate函数中:db.AutoMigrate(&Us

go - 使用 Gorm 检索有很多问题

当我尝试从播客中取回剧集时,我得到了无效关联[]。不确定我做错了什么。packagemainimport("log""github.com/jinzhu/gorm"_"github.com/mattn/go-sqlite3")typePodcaststruct{IdintTitlestringRssUrlstring`sql:"unique_index"`UrlstringEpisodes[]Episode}typeEpisodestruct{IdintPodcastIDint`sql:"index"`TitlestringUrlstring`sql:"unique_index"`Do