为什么80%的码农都做不了架构师?>>>   

列出某个对象列表,但是几次执行的结果,竟然不一样,比如第一次返回5条结果,第二次竟然返回3条结果,程序运行竟然不稳定。
解决方案发现:
在Mapper.XML文件中,如果一个SQL语句中有子查询,那么最终结果就是不稳定的。
<select id="listBySubSystem" resultMap="UserGroupMap">SELECTuserGroup.id   AS id,userGroup.name AS name,userGroup.ownerSystemId,action.id      AS action_id,action.name    AS action_name,action.description AS action_descriptionFROMuserGroupLEFT JOINaction_userGroup ON userGroup.id=action_userGroup.userGroupIdLEFT JOINaction ON action_userGroup.actionId=action.idWHERE userGroup.id in(SELECT id                 //子查询开始处FROM(SELECT userGroup.id as idFROM userGroupWHEREownerSystemId=#{ownerSystemId}ORDER by userGroup.id desclimit #{start},#{size})as newTable               //子查询结束处)ORDER BYuserGroup.id desc,action.id desc
</select>解决方案:
舍弃子查询,把这个子查询分为两次查询。
<select id="listBySubSystem" resultMap="UserGroupMap">SELECTuserGroup.id   AS id,userGroup.name AS name,userGroup.ownerSystemId,action.id      AS action_id,action.name    AS action_name,action.description AS action_descriptionFROMuserGroupLEFT JOINaction_userGroup ON userGroup.id=action_userGroup.userGroupIdLEFT JOINaction ON action_userGroup.actionId=action.idWHERE userGroup.id in<foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>ORDER BYuserGroup.id desc,action.id desc
</select>

转载于:https://my.oschina.net/dslztx/blog/124954

MyBatis返回结果不稳定相关推荐

  1. 深入了解MyBatis返回值

    深入了解MyBatis返回值 想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...

  2. 12、mybatis返回map单条及多条记录

    文章目录 1.mybatis返回map单条记录 1).EmployeeMapper接口 2).EmployeeMapper.xml 3).Test 4).测试结果 2.mybatis返回map多条记录 ...

  3. java mybatis 返回map_mybatis返回map集合的格式是什么?mybatis返回map集合实例

    Mybatis因为会与数据库交互,所以经常会有返回map集合的场景,那一般mybatis返回map集合的格式是什么呢?下面小编就用一些实例与你分享分享吧. 例1:返回key不定:返回key为学员id, ...

  4. mybatis返回值多个对象

    SpringBoot+mysql+Mybatis返回值对象中含有对象集合 1.对象personalHistoryInfo ​ public class PersonalHistoryInfo {/** ...

  5. boolean mybatis_解决MyBatis返回结果类型为Boolean的问题

    问题描述: 在使用mybatis时,有时需要检查某个记录是否存在数据库中,然后根据其返回的布尔值true or false,来进行逻辑判断.那怎么做呢? 解决方案: 如检测某个手机号是否被注册过: f ...

  6. mybatis 返回 Set

    mybatis 返回 Set 相信大家平时用到返回List的情况比较多 一.那为什么要返回set集合 1.因为Set集合的特性就是 不能有重复数据,所以通常我们返回List之后还需要去掉重复数据 是不 ...

  7. mybatis 返回结果为Map

    表:members 中的gender 列是这样: Female Female Male Female Male Male Male Male Male 现在我们想统计 members 中男女人数分别是 ...

  8. Mybatis返回Map的一种实现

    Mybatis返回Map的一种实现 前言 在使用Mybatis进行系统开发的时候,有时候我们会有这么一种需求:我们希望通过Mybatis查询某一个表返回的结果是一个Map,而这个Map的Key是表的一 ...

  9. mybatis返回某一字段_8.mybatis的基本工作流程(2.0)※

    mybatis的基本工作流程 1.读取配置文件,配置文件包含数据库连接信息和Mapper映射文件或者Mapper包路径. 2.有了这些信息就能创建SqlSessionFactory,SqlSessio ...

  10. mybatis返回map键值对_mybatis返回map结果集怎么配置

    匿名用户 1级 2018-06-10 回答 一.概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返 ...

最新文章

  1. 在Oracle VM VirtualBox中如何安装64位虚拟机系统
  2. 【深度学习】基于Pytorch的卷积神经网络概念解析和API妙用(一)
  3. floyd 判圈算法 UVa 11549 计算器谜题
  4. React Native开发之npm start加速
  5. 如何获取元素与当前可视区域顶部的距离
  6. sublime 设置新建文件自动添加author(作者)等文件头信息
  7. 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...
  8. 一个报文的路由器之旅_一个报文的路由器之旅
  9. 英特尔FPGA技术大会: 加快塑造边缘、网络和云端的未来
  10. VIM设置-发现VIM的美
  11. Linux下Nginx安装
  12. 安装Visio2010 64bit时提示不能安装32位版本的Office 2010 ,因为您当前已经安装了64位Office产品的解决方法(亲测可行)
  13. java删除文件夹部分内容_java 删除文件夹中的所有内容而不删除文件夹本身
  14. 传统方法车道线标注及相关知识
  15. android 解压相关问题,解压文件失败的情况
  16. 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
  17. Obsidian 0x01:Obsidian 双链
  18. HiveOnSpark
  19. 风控每日一问:互联网金融产品如何利用大数据做风控?
  20. Cannot change network to bridged: There are no un-bridged host network adapters解决方法

热门文章

  1. SQL Server 2008 Mirror
  2. web安全实践系列导航
  3. Autodesk CAD 2023简体中文正式版
  4. 向前看:联想未来可期
  5. The summary of Interview
  6. 2799 高校排名 加强版
  7. 「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解
  8. Windows 系统软件有哪些「必备」软件?
  9. Pr 入门教程,如何进行创意调整?
  10. 苹果Mac好用的SSH连接客户端工具:​​​​​​​​​​​​Termius