当前使用版本(必填,否则不予处理)
3.5.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
对,最新版本也有这个问题。
重现步骤(如果有就写完整)
深分页问题,使用子查询优化
我使用这种方式优化SQL,但是出现了一些问题,我在子查询中使用分页参数,参数生效了,但是SQL被重写了,执行的不是我在XML中写的SQL。
Java代码:
Page<RssInfoStorage> getAllRssInfo(@Param("page") Page<RssInfoStorage> page);
原SQL(写在了XML中):
select t1.rss_info_id,
rss_url_id,
article_title,
article_url,
article_edit_time,
rss_time,
create_time,
update_time
from rss_info_storage t1
join (select rss_info_id from rss_info_storage order by article_edit_time desc
limit #{page.size} offset ${page.current}) t2
on t1.rss_info_id = t2.rss_info_id`
但是在MybatisPlus执行时将这个SQL给改写成了:
SELECT COUNT(*) AS total FROM rss_info_storage t1 JOIN (SELECT rss_info_id FROM rss_info_storage ORDER BY article_edit_time DESC LIMIT 10 OFFSET 9) t2 ON t1.rss_info_id = t2.rss_info_id
我想要的是查询结果和使用selectPage查询时一样返回Page对象,是否有解决方案,这种重写SQL是为什么?还是说我写的这个代码有问题?
报错信息
没有报错信息,直接就把SQL重写了
Comment From: HuBoZhi
好吧,原来selectPage也是又差了一边总数