miemie 4 years ago
parent
commit
fd87b0587d

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/PaginationInnerInterceptor.java

@@ -205,7 +205,7 @@ public class PaginationInnerInterceptor implements InnerInterceptor {
         if (StringUtils.isNotBlank(countId)) {
             final String id = ms.getId();
             if (!countId.contains(StringPool.DOT)) {
-                countId = id.substring(0, id.lastIndexOf(StringPool.DOT)) + countId;
+                countId = id.substring(0, id.lastIndexOf(StringPool.DOT) + 1) + countId;
             }
             final Configuration configuration = ms.getConfiguration();
             try {

+ 8 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/pagination/EntityMapper.java

@@ -1,7 +1,9 @@
 package com.baomidou.mybatisplus.test.pagination;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.CacheNamespace;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * @author miemie
@@ -9,4 +11,10 @@ import org.apache.ibatis.annotations.CacheNamespace;
  */
 @CacheNamespace
 public interface EntityMapper extends BaseMapper<Entity> {
+
+    @Select("<script>select * from entity where <if test=\"tj.name\">name is not null</if></script>")
+    Page<Entity> otherPage(Page<?> page, PaginationTest.Tj tj);
+
+    @Select("<script>select count(0) from entity where <if test=\"tj.name\">name is not null</if></script>")
+    Long otherCount(PaginationTest.Tj tj);
 }

+ 12 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/pagination/PaginationTest.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.test.BaseDbTest;
+import lombok.Data;
 import org.apache.ibatis.cache.Cache;
 import org.apache.ibatis.plugin.Interceptor;
 import org.junit.jupiter.api.Test;
@@ -69,6 +70,12 @@ public class PaginationTest extends BaseDbTest<EntityMapper> {
             assertThat(result.getRecords().size()).isEqualTo(3);
         });
         assertThat(cache.getSize()).as("一条count缓存一条分页缓存").isEqualTo(2);
+
+        doTest(i -> {
+            Page<?> page = new Page<>(1, 2);
+            page.setCountId("otherCount");
+            i.otherPage(page, new Tj());
+        });
     }
 
     @Override
@@ -90,4 +97,9 @@ public class PaginationTest extends BaseDbTest<EntityMapper> {
             "name VARCHAR(30) NULL DEFAULT NULL," +
             "PRIMARY KEY (id))");
     }
+
+    @Data
+    public static class Tj {
+        private boolean name = true;
+    }
 }