mybatis一对多查询内层排序问题

MyBatis一对多分页与PageHelper冲突:原理与解决方案 分页查询是日常开发中高频使用的数据库交互方式,尤其在订单、商品等主从表结构场景中。当使用 MyBatis 这类ORM框架,配合 PageHelper 分页插件处理一对多关联查询时,往往会出现总数异常、当前页条数不符、数据重复等问题。其根源在于分页插件基于SQL物理行进行LIMIT截断,而一对多嵌套映射需要先对主表分页再填充子集合,两者语义错位。理解这一原理后,可以采用主表分页+集合回填、collection嵌套查询、SQL子查询先分页等方案,在保证数据准确的同时兼顾性能。本文结合典型订单列表案例,详细讲解问 阅读详情
<!--根据板块id查询所有主题->指标->维度-->
    <resultMap id="TitleDimensionMap" type="com.etouch.admincenter.bean.ZhmdDiagnosisTitleBean">
        <id column="title_id" property="id"/>
        <result column="title_name" property="titleName"/>
        <collection property="diagnosisKpiBeanList" ofType="com.etouch.admincenter.bean.ZhmdDiagnosisKpiBean">
            <id column="kpi_id" property="id"/>
            <result column="kpi_name" property="kpiName"/>
            <result column="kpi_type" property="kpiType"/>
            <result column="calculate_method" property="calculateMethod"/>
            <result column="is_add_description" property="isAddDescription"/>
            <result column="description_remind" property="descriptionRemind"/>
            <result column="input_description" property="inputDescription"/>
            <result column="kpi_industry_standard" property="kpiIndustryStandard"/>
            <result column="kpi_brand_standard" property="kpiBrandStandard"/>
            <result column="kpi_industry_standard_diff" property="kpiIndustryStandardDiff"/>
            <result column="kpi_brand_standard_diff" property="kpiBrandStandardDiff"/>
            <result column="input_description" property="inputDescription"/>
            <result column="kpi_description" property="kpiDescription"/>
            <collection property="dimensionBeans" ofType="com.etouch.admincenter.bean.ZhmdDiagnosisKpiDimensionBean">
                <id column="kpi_dimension_id" property="id"/>
                <result column="diagnosis_id" property="diagnosisId"/>
                <result column="dimension_name" property="dimensionName"/>
                <result column="dimension_value" property="dimensionValue"/>
            </collection>
        </collection>
    </resultMap>
可设置多个排序规则,这样展示到前端页面时,解决每次打开页面显示顺序都不一样的问题
<select id="getDimensionOneStep" resultMap="TitleDimensionMap">
     select
    zdt.id as title_id,zdt.title_name,
    zdk.id as kpi_id,zdk.kpi_name,zdk.kpi_type,zdk.calculate_method,zdk.is_add_description,zdk.description_remind,zdk.kpi_description,
    zdkd.id as kpi_dimension_id, zdkd.dimension_name,zdd.dimension_value,
    zdkpd.input_description
    from zhmd_diagnosis_title zdt
    left join zhmd_diagnosis_kpi zdk on zdk.diagnosis_title_id = zdt.id
    left join zhmd_diagnosis_kpi_dimension zdkd on zdkd.diagnosis_kpi_id = zdk.id
    left join zhmd_dimension_diagnosis zdd on  zdd.dimension_id = zdkd.id and zdd.diagnosis_id = #{diagnosisId}
    left join zhmd_diagnosis_kpi_problem_desc zdkpd on zdkpd.kpi_id = zdk.id and zdkpd.diagnosis_id =#{diagnosisId}
    where zdt.diagnosis_model_id = #{modelId}
    order by zdt.create_date desc,zdk.create_date desc,zdkd.dimension_sort asc
</select>

postman查询结果

Springboot Mybatis 自定义顺序排序查询,指定某个字段 阅读详情

相关推荐

物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01)

终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。

leida_3669的博客 2214

MyBatis中的collection两种使用方法

表关系: 问题表 1==>n 问题选项表, 需求: 查询问题时候,联查出来问题选项 //问题 实体类 public class Question { private String id; //ID private String content; //问题 private String type; //问题类型 1:单选,2:多选,3:问答 private Integer sort; //排序 private List<QuestionOption> options; //问题选项

weixin_44357719的博客 960

inferCNVpy实战指南:从安装到肿瘤细胞识别

本文提供inferCNVpy实战指南,详细介绍了从环境安装、数据准备到核心CNV推断分析的完整流程。重点讲解了如何利用该工具从单细胞转录组数据中识别肿瘤细胞,包括参考细胞选择、参数调优、结果可视化与解读,并分享了关键的避坑技巧,帮助用户高效完成肿瘤细胞识别。

weixin_29079643的博客 426

MyBatis实现查询结果按照查询参数的顺序排序

查询id为指定id的学生集合。 查询参数为list,即学生id的集合,list泛型为Integer,比如list中的元素为151,208,4,118,109,正常的查询,返回的list结果集,遍历学生id放在另一个list结果集中,也就是查询结果学生id的集合为4,109,118,151,208。 &lt;select id="getStudentListByIdList" paramete...

Dream_Ryoma的博客 6136

Transformer时序预测避坑指南:TFT在风电场的5个实战经验

本文分享了Temporal Fusion Transformer在风电场功率预测中的五个实战经验,涵盖数据预处理、模型调优、显存优化、注意力机制解读及在线部署。针对风电数据噪声大、概念漂移等挑战,提供了从构建数据质量标签到高效超参调优的具体方案,并强调利用Transformer架构的可解释性进行业务洞察,助力实现稳健的工业级时序预测。

bert9linguist的博客 460

麒麟V10 SP1系统下编译linuxdeployqt并打包Qt 5.15.2程序完整指南

麒麟V10 SP1系统下编译linuxdeployqt并打包Qt 5.15.2程序完整指南

ChenJin_2的博客 272

mybatis-collection

mybatis-collection 标签的使用@Data @ToString public class Employee { private Integer id; private String last_name; private String emaile; private String gender; private Dept dept; }@Data pub

lh92的专栏 365

【ComfyUI】SD1.5 + ControlNet 边缘检测融合动漫转真人

本文介绍了一个基于ComfyUI的动漫转真人图像生成工作流,通过多模型协同实现高质量的二次元图像转换。该工作流集成了Canny线稿预处理、ControlNet结构控制、VAE编码解码和人脸精细化处理等核心环节,采用majicmixRealistic_v7作为主模型,配合yolov8、SAM等辅助模型。整个流程包含11个标准化步骤,从图像输入、预处理到最终超分输出,通过ControlNet引导和CLIP语义控制确保生成图像的写实感和结构准确性,特别针对人脸区域进行专业优化,最终可输出高分辨率写实人像。

Mr数据杨 1121

mybatis collection多级嵌套查询

mybatis collection多级嵌套查询 需求:一个页面有多个模块,一个模块有多个对应的图片,需要查询出来的json格式需要三层嵌套 实体类 /** * (MesaMenu)实体类 * * @author ran * @since 2021-03-17 11:38:27 */ @Data @NoArgsConstructor public class MesaMenu implements Serializable { private static final long.

nyasm的博客 3535

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2095

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

974

Mybatis 一对多查询列表属性处理

Mybatis 一对多查询列表属性处理 一、说明 1.``标签属性说明 2. 示例代码 二、平铺查询 三、 嵌套查询(Nested Select for Collection) 3.1 外键查询 3.2 select传入多个参数

搬山境KL攻城狮的修炼手册 5548

实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

该验证码是异形滑块验证码中的一种,缺口旋转+偏移的处理需要你有很好的图像处理知识,能很好的处理透明通道,同时,该验证码需要你能很好的处理缺口和背景之间匹配的关系,该验证码的处理难点就是两个缺口之间如何找到正确的,两个检测框都有很强的相似度,且加上背景图的干扰,在图像处理和有优化上难度大大增加。

码王吴彦祖的博客 2013

深入解析 MybatisPlus 中实现一对多查询的方法:以食谱餐别与菜单详情为例

本文通过对 MybatisPlus 中实现一对多查询的多种方法进行深入解析和对比分析。

夜郎King的博客 6502

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mybatis 一对多查询

https://blog.youkuaiyun.com/saytime/article/details/79003789 排序 set

如雨随行的博客 177

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mybatis+pageHelper一对多查询时的分页问题

当一个实体类中包括另一个实体类的 list ,对这个实体类进行分页查询时会发生一些问题:相同的数据会合并成一条,导致前台显示时每页的数据量不一样,比如第一页8条,第二页7条,第三页10条的情况。 问题模拟: 假设一个员工有多个部门,因为部门下面可能也会有子部门,这时就会出现这种情况。 javaBean: // 用户类,包括用户基本属性和部门相关信息 public class User { // 用户id private String userId; // 用户姓名 private String us

qq_35058409的博客 2299

springBoot学习笔记(2.1)—— 整合mybatis之一对一,一对多查询

更多文章 更多系列文章在个人网站 springBoot学习系列笔记文章 springBoot学习笔记(1)—— 搭建springBoot项目 说明:上一篇文章已经使用了SpringBoot和mybatis的整合,所以此处研究一对一,一对多查询。上面有这个系列的文章目录,有需要的可以跳转到对应的文章列表,有问题和意见的可以评论或者私聊。 文章目录更多文章springBoot学习系列笔记文章一、二、使用步骤1.引入库2.读入数据总结 一、 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决

xiayz的博客 535

mybatis collection 高级映射出错问题解决

问题:mybatis collection高级映射(不使用子查询,避免N+1),mapper配置如下: resultMap id="OmsSkuPoMap" type="com.trymore.pifa.domain.po.OmsSkuPo" >     id column="sku_id" property="skuId" jdbcType="VARCHAR" />

shandalue的专栏 8885

(二)Mybatis类型转换器,接口传参类型,一对一,一对多查询resultMap配置

Mybatis类型转换器 首先明白什么时候用到它,当数据库的字段类型和java字段类型无法默认匹配时候进行转换,比如现在数据库类型是INTEGER,而java当中类型是Boolean,true表示1,false表示0,这时候你在执行sql语句插入或者查询获取结果集时,类型就会出现不匹配的情况,这时候我们只需要书写一个类型转换器,并进行配置,之后java遇到INTEGER---Boole...

_Ennio 346

Mybatis一对多,多对一嵌套查询的返回

我们有时候查询需要一带多,多带一的信息,举个一对多的例子:我们要查询所有的订单,顺便还能把对应的订单里面的多条详情(比如对应的商品,商品价格等)也带出来。 类似于这样 orderNo, orderTime, orderDetailList [ { orderDetailId, skuid,

FeiChangWuRao的博客 2134

记一次mybatis使用时造成的线上bug。

使用mybatis一对多查询时,查询出来的结果有重复。 1、resultMap: <resultMap id="resourceCountryDtoMap" type="com.xcy.dto.ResourceCountryDto"> <result column="resource_id" jdbcType="INTEGER" property="resourceId...

And_leayf的博客 404

Mybatis多表连接查询,一对多模式中数据过滤问题

MyBatis 一对多加LMIT查询,踩坑实录。

csdn_NN的博客 1100

mybatis一对多关联查询

题目对象 Subject import lombok.Data; import java.io.Serializable; import java.util.Date; import java.util.List; @Data public class Subject implements Serializable { /*** * @Fields serialVersionUID:序...

YAOYU007的博客 308

mybatis 一对多超详图解

菜鸟新人 193

mybatis 高级映射 - 一对多查询 - collection

方法一 连接表查询 案例:查询所有订单信息及订单下的订单明细信息。 订单信息与订单明细为一对多关系。 使用resultMap实现如下: Sql语句: SELECT orders.*, user.username, user.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdeta...

weixin_30622107的博客 127

mybatis的多表操作+注解开发

例1: allEq((k,v) -> k.indexOf(“a”) > 0, {id:1,name:“老王”,age:null}) —> name = ‘老王’ and age is null。例2: allEq((k,v) -> k.indexOf(“a”) > 0, {id:1,name:“老王”,age:null}, false) —> name = ‘老王’例2: allEq({id:1,name:“老王”,age:null}, false) —> id = 1 and name = ‘老王’

weixin_44522680的博客 882
下一篇: idea中Springcloud同时运行多个模块、微服务
意田天
博客等级 码龄7年 41粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

意田天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值