最近项目中遇到一个bug,正常的流程是这样的:要上传一个应用,首先检查系统中是否已经存在这个应用的更高版本,如果存在,则上传操作将被取消。

bug体现为当传入系统中存在的所有应用与新上传的应用的versioncode都小于10,则上传能够成功,而当传入一个versioncode=10的应用时判断存在更高版本,操作被取消。复现并定位这个问题以后,考虑到对比versioncode处的代码应该有问题,查看如下:

mapper.xml里有这样一句:

and t.versioncode >= #{versioncode}

这样转为sql后为:and t.versioncode>=
"10",

也就是说这里进行了一次字符串的比较,比较的结果是9>'10'

知道问题的原因了,bug修改如下:

and t.versioncode >= ${versioncode}

这样转为sql后为:and t.versioncode>=
10,也就是说这里进行了一次数字的比较,比较的结果是9<10

问题解决了,希望同志们不要再出这样的bug喽,查找起来起来好麻烦的。。。

最新文章

  1. ios NSURLSession completeHandler默认调用quque
  2. oracle初次使用连接不上
  3. 使用Chrome+node-inspector查找NodeJS内存泄漏
  4. sass进阶篇总结一
  5. 再探CRC
  6. UVa11183 Teen Girl Squad, 最小树形图,朱刘算法
  7. Amazing ASP.NET Core 2.0
  8. Java_循环
  9. leetcode 813. Largest Sum of Averages
  10. 理解OpenShift(7):基于 Prometheus 的集群监控
  11. 关于C#关闭窗体后,依旧有后台进程在运行的解决方法
  12. python------Socket网络编程(二)粘包问题
  13. 【Alpha】第九次Scrum meeting
  14. 关于sudo 权限被修改的解决方法
  15. JavaScript的深拷贝和浅拷贝总结
  16. Android SDK的安装与环境配置
  17. mysql replace语句
  18. 20145201 《Java程序设计》第六周学习总结
  19. js 获取 Url.Action 设置area
  20. [已解决]windows下python3.x与python2.7共存版本pip使用报错问题

热门文章

  1. python实现清屏
  2. SP5150 JMFILTER - Junk-Mail Filte(并查集)
  3. Linux基于webRTC的二次开发(二) 实现远程桌面共享
  4. 搭建Redis三主三从集群
  5. .NET进阶篇06-async异步、thread多线程3
  6. 用例图浅谈以及OOA再到情景分析的面向对象电梯的设计(慕课东北大学)面向对象设计思维模式
  7. ReentreantLock:重入锁
  8. 深入理解跳表在Redis中的应用
  9. Android中常见的设计模式
  10. python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等)