返回 nil 结构而不是空结构 go-gorm

使用以下模型:


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结构,或者我是否以错误的方式考虑这个问题?


HUWWW
浏览 134回答 3
3回答

MM们

在 gorm 中,您应该通过方法调用检查记录是否为空:if db.First(&user, 77).RecordNotFound() {     log.Println("UUID:", 77, err) }

慕沐林林

有了这个模型type User struct {    UUID string         `gorm:"primary_key"`    Name string         `gorm:"NOT NULL"`    CreatedAt time.Time    UpdatedAt time.Time}你可以试试这个来获得零指针var user *Userdb.First(&user)否则你也可以使用它var user Userif db.First(&user).RecordNotFound(){  //record not found}

芜湖不芜

添加指针函数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 Userdb.First(user.Pointer())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go