生产上遇到问题得经验总结(二)mybatis-plus分页排序失效的问题
情况说明
再写一个分页接口时,发现分页不好用。
我一直用的都是mybais-plus的com.baomidou.mybatisplus.extension.plugins.pagination.Page中的List orders
在页面上有排序的时候,我都让前端拼一下OrderItem的这个类的JSON。
"orders": [
{
"column": "create_time",
"asc": false
}
]
但是我今天让前端拼完参数以后,发现排序不好用了。
这令我很是疑惑啊。因为以前都是用这种方式来处理在前端页码中的排序。
而且同一个项目上其他的以同样方式写的接口,排序都是好使的(这个是我后来才发现的)。
项目基本情况
我用mybatis-plus的版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.0</version>
</dependency>
mybatis-plus的配置类
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
解决问题的过程
一开始在AI上搜啊,给出的结果。
1、大概的意思是mybatis-plus的3.4.0版本不太稳定,让我升级mybatis-plus的版本(这个感觉也不太靠谱,升级框架版本影响面太广)。
2、让我修改mybatis-plus的配置类(这个修改完了以后没屌用)。
3、让我手动在xml中,写order by(最后无奈采取了这种方式)。
最后的原因
最后我发现同一个项目中其他写的分页接口,排序是好用的。所以我排除了整个项目中,这种方式写的都不好使的结论。
那就只能再看看,这个接口中的sql了。
我在select 中使用EXISTS关键字,于是就想到可能是用了这个关键字导致mybatis-plus的识别不出来加order by的位置了。
我就把EXISTS关键字暂时删除了。
果然删除以后排序就好使了。
总结一下
导致这次出现的问题的原因就是,mybatis-plus版本不稳定。涉及到复杂一些的sql,可能导致排序不好用。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)