MyBatis返回结果不稳定
为什么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返回结果不稳定相关推荐
- 深入了解MyBatis返回值
深入了解MyBatis返回值 想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...
- 12、mybatis返回map单条及多条记录
文章目录 1.mybatis返回map单条记录 1).EmployeeMapper接口 2).EmployeeMapper.xml 3).Test 4).测试结果 2.mybatis返回map多条记录 ...
- java mybatis 返回map_mybatis返回map集合的格式是什么?mybatis返回map集合实例
Mybatis因为会与数据库交互,所以经常会有返回map集合的场景,那一般mybatis返回map集合的格式是什么呢?下面小编就用一些实例与你分享分享吧. 例1:返回key不定:返回key为学员id, ...
- mybatis返回值多个对象
SpringBoot+mysql+Mybatis返回值对象中含有对象集合 1.对象personalHistoryInfo public class PersonalHistoryInfo {/** ...
- boolean mybatis_解决MyBatis返回结果类型为Boolean的问题
问题描述: 在使用mybatis时,有时需要检查某个记录是否存在数据库中,然后根据其返回的布尔值true or false,来进行逻辑判断.那怎么做呢? 解决方案: 如检测某个手机号是否被注册过: f ...
- mybatis 返回 Set
mybatis 返回 Set 相信大家平时用到返回List的情况比较多 一.那为什么要返回set集合 1.因为Set集合的特性就是 不能有重复数据,所以通常我们返回List之后还需要去掉重复数据 是不 ...
- mybatis 返回结果为Map
表:members 中的gender 列是这样: Female Female Male Female Male Male Male Male Male 现在我们想统计 members 中男女人数分别是 ...
- Mybatis返回Map的一种实现
Mybatis返回Map的一种实现 前言 在使用Mybatis进行系统开发的时候,有时候我们会有这么一种需求:我们希望通过Mybatis查询某一个表返回的结果是一个Map,而这个Map的Key是表的一 ...
- mybatis返回某一字段_8.mybatis的基本工作流程(2.0)※
mybatis的基本工作流程 1.读取配置文件,配置文件包含数据库连接信息和Mapper映射文件或者Mapper包路径. 2.有了这些信息就能创建SqlSessionFactory,SqlSessio ...
- mybatis返回map键值对_mybatis返回map结果集怎么配置
匿名用户 1级 2018-06-10 回答 一.概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返 ...
最新文章
- 在Oracle VM VirtualBox中如何安装64位虚拟机系统
- 【深度学习】基于Pytorch的卷积神经网络概念解析和API妙用(一)
- floyd 判圈算法 UVa 11549 计算器谜题
- React Native开发之npm start加速
- 如何获取元素与当前可视区域顶部的距离
- sublime 设置新建文件自动添加author(作者)等文件头信息
- 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...
- 一个报文的路由器之旅_一个报文的路由器之旅
- 英特尔FPGA技术大会: 加快塑造边缘、网络和云端的未来
- VIM设置-发现VIM的美
- Linux下Nginx安装
- 安装Visio2010 64bit时提示不能安装32位版本的Office 2010 ,因为您当前已经安装了64位Office产品的解决方法(亲测可行)
- java删除文件夹部分内容_java 删除文件夹中的所有内容而不删除文件夹本身
- 传统方法车道线标注及相关知识
- android 解压相关问题,解压文件失败的情况
- 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
- Obsidian 0x01:Obsidian 双链
- HiveOnSpark
- 风控每日一问:互联网金融产品如何利用大数据做风控?
- Cannot change network to bridged: There are no un-bridged host network adapters解决方法
热门文章
- SQL Server 2008 Mirror
- web安全实践系列导航
- Autodesk CAD 2023简体中文正式版
- 向前看:联想未来可期
- The summary of Interview
- 2799 高校排名 加强版
- 「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解
- Windows 系统软件有哪些「必备」软件?
- Pr 入门教程,如何进行创意调整?
- 苹果Mac好用的SSH连接客户端工具:​​​​​​​​​​​​Termius