当前使用版本(必填,否则不予处理)

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也是又差了一边总数