采用以下模式:
type User struct {
UUID string `gorm:"primary_key"`
Name string `gorm:"NOT NULL"`
CreatedAt time.Time
UpdatedAt time.Time
}如果您对而不是的用户执行以下go-gorm查询:
var user User
db.First(&user)最后收到的是填充日期字段的空结构。是否有一种方法来代替只接收一个nil结构返回,或者我是不是以错误的方式思考这个问题?
发布于 2018-09-30 09:05:13
在gorm中,您应该使用一个方法调用来检查记录是否为空:
if db.First(&user, 77).RecordNotFound() {
log.Println("UUID:", 77, err)
}发布于 2021-06-30 09:18:13
用这个模型
type User struct {
UUID string `gorm:"primary_key"`
Name string `gorm:"NOT NULL"`
CreatedAt time.Time
UpdatedAt time.Time
}var user *User
db.First(&user)var user User
if db.First(&user).RecordNotFound(){
//record not found
}发布于 2018-09-30 08:33:23
添加指针函数
func (user User) Pointer() *User {
var t time.Time
if user.UUID == "" && user.Name == "" && user.CreatedAt == t && user.UpdatedAt == t {
return nil
}
return &user
}然后把它传过去
var user User
db.First(user.Pointer())https://stackoverflow.com/questions/52575750
复制相似问题