gorm升级V1至V2
Count() 入参类型变化
V1 : Count(int)
V2: Count(int64)
Limt()\Offset()
入参类型由 interface{} -> int
Order
v1: 参数为空字符串会被忽略,从而正常执行: Order("") 生成的sql中不带order by
v2: 空字符串也会被生成 order by 语句,从而导致 sql 执行失败。需要自行判空
Find
在 V1 版本中, Find(&User{}) 当记录不存在时会返回 ErrRecordNotFound
在 V2 版本中,Find(&User{}) 不会返回 ErrRecordNotFound
查询条件复用
V1示例:
query := db.Where("ctime > 123123123")
// 查询1
query.Offset((page-1) * pageSize).Limit(10).Find(&users)
// 查询2
query.Count(&count)
正确的V2版本 (复用条件时,需要带上 .Session(&grom.Session{}),否则会出现查询2里面带有查询1的条件,在并发情况下还会出现线程安全问题) :
query := db.Where("ctime > 123123123")// 查询1
query.Session(&gorm.Session{}).Offset((page-1) * pageSize).Limit(10).Find(&users)// 查询2
query.Session(&gorm.Session{}).Count(&count)
gorm升级V1至V2相关推荐
- Android v1、v2、v3签名原理
Android签名机制 什么是Android签名 了解 HTTPS 通信的同学都知道,在消息通信时,必须至少解决两个问题:一是确保消息来源的真实性,二是确保消息不会被第三方篡改. 同理,在安装 apk ...
- Android 签名机制原理解析和V1 、V2签名区别
一.什么是签名? 是确保消息来源的真实性 是确保消息不会被第三方篡改 1.基本信息基础必备 1.1 消息摘要 消息摘要,又称数字摘要 或 数字指纹. 简单来说,消息摘要就是在消息数据上,执行一个单向 ...
- Android V1及V2签名原理简析
Android为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新旧是否匹配,这两者都是通过Android签名机制来进行保证的,本文就简单看下Andro ...
- Android V1、V2签名包和快速集成美团多渠道打包
今日科技快讯 三天的Google I/O大会2018终于落下帷幕,虽说现在的I/O大会重点已经变成了人工智能,但是Android P的推出还是让很多小伙伴激动不已的.这次Android P被喻为近几年 ...
- 面试:Android 签名校验机制 v1、v2、v3
探究 Android 签名机制和原理 - 腾讯云开发者社区-腾讯云 一.APK签名可以带来以下好处 应用程序升级 如果想无缝升级一个应用,Android系统要求应用程序的新版本与老版本具有相同的签名与 ...
- 测开之路二十:比较v1和v2
根据V1和V2的版本号,如果v1>v2,返回1,如果v1<v2,返回-1,除此之外返回0 # 如果v1>v2,返回1,如果v1<v2,返回-1,除此之外返回0v1 = inpu ...
- python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)
def pack(fmt, *args): # known case of _struct.pack"""pack(fmt, v1, v2, ...) -> byt ...
- Swin Transformer 升级,Swin V2:向更大容量、更高分辨率的更大模型迈进
作者丨happy 编辑丨极市平台 本文原创首发于极市平台公众号,转载请获得授权并标明出处 论文链接:https://arxiv.org/pdf/2111.09833.pdf 代码链接:https:// ...
- apk 签名v1与v2的区别
在Android Studio中点击菜单 Build->Generate signed apk... 打包签名过程中, 可以看到两种签名选项 V1(Jar Signature) V2(Full ...
最新文章
- 卷积神经网络(cnn)的体系结构
- 多线程处理大文件_Java内存映射,上G大文件轻松处理
- Java的finally执行顺序_Java return和finally执行顺序
- Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效
- 超炫jQuery测试答题功能
- 数据结构——堆的C语言实现
- java 类集合_java集合类详解
- linux 怎么看w7分区,如何查看widows7系统和Linux端口被占用
- leetcode第26题:删除排序数组的重复项
- IE6下溢出多余文字
- ISA发布邮件服务器
- [转] 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- (8)matplotlib 将点连成线
- python备注(持续更新……)
- Django中文文档2.0
- 高数_第1章空间解析几何与向量代数__求旋转曲面方程
- 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1+2+3, 编程找出 1000 以内的所有完数。
- 7-2 jmu-python-汇率兑换
- java 内存模型书籍_《深入理解 Java 内存模型》读书笔记
- 想学3D建模?适合安装3dsmax软件的笔记本配置
热门文章
- 《六顶思考帽》读后感
- 开始学习ARM 单片机
- 选赵敏还是选小昭,这可真是个问题 | Decision Tree
- Mac的Safari安装油猴插件(Tampermonkey)
- 海信智能电视可以升级鸿蒙系统吗,都是55寸新品,荣耀智慧屏、小米电视和海信电视,你会咋选?...
- flash游戏教程集锦~~制作游戏有疑惑的先来这里看看~~
- 移动端文字与排版设计的六个原则
- radmin连接电脑都能通,就是不显示桌面的处理办法
- 项目引入其他公共模块,公共模块的aop或者一些基础类无效。
- C语言2009年慈溪最大的数,慈溪中学2009年保送生招生考试科学[1]1