Mybatis Plus 自定义语句分页 带with(nolock) 与orderby 冲突解决方案
2023-12-28 14:19:29
使用?Mybatis Plus 自定义语句分页 语句带with(nolock)就会报错
### Error querying database. ?Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql :?
?SELECT COUNT(1) FROM ( SELECT D.* ,CK.CKMC AS yrckmc
? ? ? ? FROM SPYCD D WITH(NOLOCK)
? ? ? ? LEFT JOIN ?CANGKU CK WITH(NOLOCK) ON D.DM2=CK.CKDM
? ? ? ? WHERE (d.dm1 = ? AND d.rq BETWEEN ? AND ?) ORDER BY d.rq DESC , d.djbh DESC ) TOTAL?
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
QueryWrapper wrapper=new QueryWrapper();
wrapper.eq("d.dm1", ckdm);
wrapper.orderByDesc("d.rq","d.djbh");
IPage<Spycd> ipage =spycdMapper.selectCustPage(getPage(term),wrapper);
IPage<Spycd> selectCustPage(Page page, @Param("ew")QueryWrapper wrapper);
SELECT D.* ,CK.CKMC AS yrckmc
FROM SPYCD D WITH(NOLOCK)
LEFT JOIN CANGKU CK WITH(NOLOCK) ON D.DM2=CK.CKDM
${ew.customSqlSegment}
?解决方式:
page.setSearchCount(false); //分页查询只查询不统计
?然后单独写个查询去统计
select '合计' as djbh,round(sum(sl),0) as sl,round(sum(je),2) as je ,count(1) as total
from Spycd D WITH(NOLOCK)
${ew.customSqlSegment}
然后将统计的总数赋给IPage
ipage.setTotal(footer.getTotal());
?
?
文章来源:https://blog.csdn.net/chengmin123456789/article/details/135261739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!