Преглед изворни кода

page.total字段应当为包装类型,当不查询count时值应当为null而不是0

Caratacus пре 6 година
родитељ
комит
bd640ef84a

+ 4 - 5
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/IPage.java

@@ -15,13 +15,13 @@
  */
 package com.baomidou.mybatisplus.core.metadata;
 
+import static java.util.stream.Collectors.toList;
+
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
 
-import static java.util.stream.Collectors.toList;
-
 /**
  * <p>
  * 分页 Page 对象接口
@@ -149,17 +149,16 @@ public interface IPage<T> extends Serializable {
      *
      * @return 总条数
      */
-    long getTotal();
+    Long getTotal();
 
     /**
      * <p>
      * 设置当前满足条件总行数
      * </p>
      * <p>
-     * 当 total 为 null 或者大于 0 分页插件不在查询总数
      * </p>
      */
-    IPage<T> setTotal(long total);
+    IPage<T> setTotal(Long total);
 
     /**
      * <p>

+ 6 - 6
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/Page.java

@@ -15,12 +15,12 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-
 import java.util.Collections;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+
 /**
  * <p>
  * 简单分页模型
@@ -40,7 +40,7 @@ public class Page<T> implements IPage<T> {
     /**
      * 总数
      */
-    private long total = 0;
+    private Long total;
     /**
      * 每页显示条数,默认 10
      */
@@ -144,12 +144,12 @@ public class Page<T> implements IPage<T> {
     }
 
     @Override
-    public long getTotal() {
+    public Long getTotal() {
         return this.total;
     }
 
     @Override
-    public Page<T> setTotal(long total) {
+    public Page<T> setTotal(Long total) {
         this.total = total;
         return this;
     }

+ 21 - 15
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

@@ -1,5 +1,22 @@
 package com.baomidou.mybatisplus.test.mysql;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.Condition;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -16,17 +33,6 @@ import com.baomidou.mybatisplus.test.base.mapper.commons.CommonDataMapper;
 import com.baomidou.mybatisplus.test.base.mapper.commons.CommonLogicDataMapper;
 import com.baomidou.mybatisplus.test.base.mapper.mysql.MysqlDataMapper;
 import com.baomidou.mybatisplus.test.mysql.config.MysqlDb;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.MethodSorters;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import javax.annotation.Resource;
-import java.util.*;
 
 
 /**
@@ -271,7 +277,7 @@ public class MysqlTestDataMapperTest {
         page.setDesc("c_time", "u_time");
         IPage<CommonData> dataPage = commonMapper.selectPage(page, null);
         Assert.assertSame(dataPage, page);
-        Assert.assertNotEquals(0L, dataPage.getTotal());
+        Assert.assertNotEquals(null, dataPage.getTotal());
         Assert.assertNotEquals(0, dataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(dataPage.getRecords()));
         System.out.println(JSON.toJSONString(dataPage));
@@ -280,7 +286,7 @@ public class MysqlTestDataMapperTest {
         Page<CommonLogicData> logicPage = new Page<>(1, 5);
         IPage<CommonLogicData> logicDataPage = commonLogicMapper.selectPage(logicPage, null);
         Assert.assertSame(logicDataPage, logicPage);
-        Assert.assertNotEquals(0L, logicDataPage.getTotal());
+        Assert.assertNotEquals(null, logicDataPage.getTotal());
         Assert.assertNotEquals(0, logicDataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(logicDataPage.getRecords()));
         System.out.println(JSON.toJSONString(logicDataPage));
@@ -288,7 +294,7 @@ public class MysqlTestDataMapperTest {
         Page<MysqlData> mysqlPage = new Page<>(1, 5);
         IPage<MysqlData> mysqlDataPage = mysqlMapper.selectPage(mysqlPage, null);
         Assert.assertSame(mysqlDataPage, mysqlPage);
-        Assert.assertNotEquals(0L, mysqlDataPage.getTotal());
+        Assert.assertNotEquals(null, mysqlDataPage.getTotal());
         Assert.assertNotEquals(0, mysqlDataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlDataPage.getRecords()));
         System.out.println(JSON.toJSONString(mysqlDataPage));
@@ -300,7 +306,7 @@ public class MysqlTestDataMapperTest {
         page.setDesc("c_time", "u_time");
         IPage<CommonData> dataPage = new CommonData().selectPage(page, new QueryWrapper<CommonData>().lambda());
         Assert.assertSame(dataPage, page);
-        Assert.assertNotEquals(0L, dataPage.getTotal());
+        Assert.assertNotEquals(null, dataPage.getTotal());
         Assert.assertNotEquals(0, dataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(dataPage.getRecords()));
         System.out.println(JSON.toJSONString(dataPage));

+ 19 - 17
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/postgres/PostgresTestDataMapperTest.java

@@ -1,5 +1,21 @@
 package com.baomidou.mybatisplus.test.postgres;
 
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,20 +30,6 @@ import com.baomidou.mybatisplus.test.base.mapper.commons.CommonDataMapper;
 import com.baomidou.mybatisplus.test.base.mapper.commons.CommonLogicDataMapper;
 import com.baomidou.mybatisplus.test.base.mapper.pg.PgDataMapper;
 import com.baomidou.mybatisplus.test.postgres.config.PostgresDb;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.MethodSorters;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -197,7 +199,7 @@ public class PostgresTestDataMapperTest {
         IPage<CommonData> page = new Page<>(1, 5);
         IPage<CommonData> dataPage = commonMapper.selectPage(page, null);
         Assert.assertSame(dataPage, page);
-        Assert.assertNotEquals(0L, dataPage.getTotal());
+        Assert.assertNotEquals(null, dataPage.getTotal());
         Assert.assertNotEquals(0, dataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(dataPage.getRecords()));
         System.out.println(JSON.toJSONString(dataPage));
@@ -205,7 +207,7 @@ public class PostgresTestDataMapperTest {
         IPage<CommonLogicData> logicPage = new Page<>(1, 5);
         IPage<CommonLogicData> logicDataPage = commonLogicMapper.selectPage(logicPage, null);
         Assert.assertSame(logicDataPage, logicPage);
-        Assert.assertNotEquals(0L, logicDataPage.getTotal());
+        Assert.assertNotEquals(null, logicDataPage.getTotal());
         Assert.assertNotEquals(0, logicDataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(logicDataPage.getRecords()));
         System.out.println(JSON.toJSONString(logicDataPage));
@@ -214,7 +216,7 @@ public class PostgresTestDataMapperTest {
         page.setSize(5).setCurrent(1);
         IPage<PgData> pgDataPage = pgMapper.selectPage(pgPage, null);
         Assert.assertSame(pgDataPage, pgPage);
-        Assert.assertNotEquals(0L, pgDataPage.getTotal());
+        Assert.assertNotEquals(null, pgDataPage.getTotal());
         Assert.assertNotEquals(0, pgDataPage.getRecords().size());
         Assert.assertTrue(CollectionUtils.isNotEmpty(pgDataPage.getRecords()));
         System.out.println(JSON.toJSONString(pgDataPage));