在项目中基于复杂多表(JOIN)的SQL创建了一个视图,然后再基于这个视图做分页查询的时候遇到了使用MyBatis-Plus 中的Page的getTotal()方法获得的值始终为0的情况(实际上有数据,但是统计出来的数据条数始终为0),也就是MyBatis-Plus 分页插件的 count(*) 语句失效。
了解到:
Mybatis-Plus的分页插件无法为VIEW自动构造正确的count(*)语句,特别是包含:
(1)多表JOIN
(2)ORDER BY
(3)VIEW本身(Mybatis-Plus无法解析视图的结构)
所以最终的结果是:records能查到(因为LIMIT加上了),但是total = 0(因为他不会自动计算count)。