GORM 执行结果判断问题(error nil问题)

简介: GORM 执行结果判断问题(error nil问题)

起因


使用GORM执行数据库操作时,返回了*DB,如果我们直接使用以下方式判断,会一直返回false,不能用作语句执行结果的判断

    err := db.Create(&demand)
  if err != nil {
    return false, err.Error
  }
  return true, nil

正确处理


判断时需要使用返回的结构体的Error成员进行判断,如下即可进行正确返回

    err := db.Create(&demand)
  if err.Error != nil {
    return false, err.Error
  }
  return true, nil

原因


分析gorm源码我们可以发现,gorm语句执行返回了一个*DB结构体,而error对象被包含在其中,所以gorm执行完返回该结构体时不能直接用作执行结果判断,需要使用其中的Error成员

image.png

目录
相关文章
|
3月前
|
Go
mutex := rs.NewMutex(mutexname) // 对key进行 if err := mutex.Lock(); err != nil { pani
mutex := rs.NewMutex(mutexname) // 对key进行 if err := mutex.Lock(); err != nil { pani
|
4月前
|
Go
优雅判断 interface 是否为 nil
优雅判断 interface 是否为 nil
|
7月前
|
API Android开发 开发者
debug常见错误,出现debug时出现跑进为条件为false的if语句,DELETE_FAILED_INTERNAL_ERROR Error while In
debug常见错误,出现debug时出现跑进为条件为false的if语句,DELETE_FAILED_INTERNAL_ERROR Error while In
49 5
|
7月前
|
域名解析 缓存 网络协议
关于错误ERR_NAME_NOT_RESOLVED
如果以上方法都未能解决问题,你可能需要联系你的网络管理员或互联网服务提供商以获取更多帮助,或者考虑尝试在不同的网络环境中访问网站。
1450 0
|
7月前
|
网络协议 BI Go
Go-异常处理(defer recover panic)
Go-异常处理(defer recover panic)
79 0
|
Java 应用服务中间件 Windows
Golang 中 nil==nil 是对是错?
Golang 中 nil==nil 是对是错?
83 0
|
数据库连接 Go
Go-关键字defer、panic、recover详解
Go-关键字defer、panic、recover详解
183 0
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会。 前。 准确的说,应该是在中间。(注意参考系) 示例代码如下: 1 package cn.itcast_07; 2 3 /* 4 * 面试题: 5 * 1:final,finally和finalize的区别 6 * final:最终的意思,可以修饰类、成员变量、成员方法 7 * 修饰类,类不能被继承。
1726 0

热门文章

最新文章