From ec7c2eb4ca6b9f4f5b87db4313ceb80bc23e73e9 Mon Sep 17 00:00:00 2001 From: iqudoo Date: Tue, 31 Mar 2026 00:30:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?pagesize=E5=A4=A7=E4=BA=8E=E7=AD=89=E4=BA=8E10000=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BB=A3=E8=A1=A8=E4=B8=8D=E5=88=86=E9=A1=B5=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E5=86=85=E9=83=A8=E8=B0=83=E7=94=A8getlist?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abstracts/AbstractWithLimitPlugin.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iqudoo/framework/mybatis/abstracts/AbstractWithLimitPlugin.java b/src/main/java/com/iqudoo/framework/mybatis/abstracts/AbstractWithLimitPlugin.java index 16196de..18fd4ce 100644 --- a/src/main/java/com/iqudoo/framework/mybatis/abstracts/AbstractWithLimitPlugin.java +++ b/src/main/java/com/iqudoo/framework/mybatis/abstracts/AbstractWithLimitPlugin.java @@ -15,7 +15,9 @@ import java.util.List; public abstract class AbstractWithLimitPlugin extends PluginAdapter implements ISelectSelectivePluginHook { private final static int DEFAULT_START_PAGE = 1; + private final static int DEFAULT_IGNORE_PAGE_SIZE = 10000; private int startPage = 1; + private int ignorePageSize = DEFAULT_IGNORE_PAGE_SIZE; @Override public boolean validate(List list) { @@ -26,12 +28,22 @@ public abstract class AbstractWithLimitPlugin extends PluginAdapter implements I public void initialized(IntrospectedTable introspectedTable) { super.initialized(introspectedTable); this.startPage = DEFAULT_START_PAGE; + String ignorePageSizeProperty = this.properties.getProperty("ignorePageSize"); + if (ignorePageSizeProperty != null && ignorePageSizeProperty.trim().length() > 0) { + try { + this.ignorePageSize = Integer.parseInt(ignorePageSizeProperty.trim()); + } catch (NumberFormatException ignored) { + this.ignorePageSize = DEFAULT_IGNORE_PAGE_SIZE; + } + } else { + this.ignorePageSize = DEFAULT_IGNORE_PAGE_SIZE; + } } @Override public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { PrimitiveTypeWrapper integerWrapper = FullyQualifiedJavaType.getIntInstance().getPrimitiveTypeWrapper(); - // 添加minPageNum、defaultPageSize和maxPageSize字段 + // 添加 minPageNum、defaultPageSize、maxPageSize、ignorePageSize 字段 Field maxPageSizeField = ElementTools.generateField( "maxPageSize", JavaVisibility.PROTECTED, @@ -40,6 +52,14 @@ public abstract class AbstractWithLimitPlugin extends PluginAdapter implements I ); topLevelClass.addField(maxPageSizeField); + Field ignorePageSizeField = ElementTools.generateField( + "ignorePageSize", + JavaVisibility.PROTECTED, + integerWrapper, + this.ignorePageSize + "" + ); + topLevelClass.addField(ignorePageSizeField); + Field defaultPageSizeField = ElementTools.generateField( "defaultPageSize", JavaVisibility.PROTECTED, @@ -80,6 +100,12 @@ public abstract class AbstractWithLimitPlugin extends PluginAdapter implements I Method mGetMaxPageSize = ElementTools.generateGetterMethod(maxPageSizeField); FormatTools.addMethodWithBestPosition(topLevelClass, mGetMaxPageSize); + Method mSetIgnorePageSize = ElementTools.generateSetterMethod(ignorePageSizeField); + FormatTools.addMethodWithBestPosition(topLevelClass, mSetIgnorePageSize); + + Method mGetIgnorePageSize = ElementTools.generateGetterMethod(ignorePageSizeField); + FormatTools.addMethodWithBestPosition(topLevelClass, mGetIgnorePageSize); + Method mSetDefaultPageSize = ElementTools.generateSetterMethod(defaultPageSizeField); FormatTools.addMethodWithBestPosition(topLevelClass, mSetDefaultPageSize); @@ -144,6 +170,11 @@ public abstract class AbstractWithLimitPlugin extends PluginAdapter implements I usePage, "pageSize = pageSize == null || pageSize <= 0 ? this.defaultPageSize : pageSize;", "pageNum = pageNum == null || pageNum < this.minPageNum ? this.minPageNum : pageNum;", + "if (pageSize >= this.ignorePageSize) {", + "this.rows = null;", + "this.offset = null;", + "return this;", + "}", "int cPageSize = pageSize > this.maxPageSize ? this.maxPageSize: pageSize;", "this.offset = (pageNum - this.minPageNum) * cPageSize;", "this.rows = cPageSize;",