diff --git a/mypages/src/main/java/io/leego/mypages/interceptor/PaginationInterceptor.java b/mypages/src/main/java/io/leego/mypages/interceptor/PaginationInterceptor.java index b319362..2e93c73 100644 --- a/mypages/src/main/java/io/leego/mypages/interceptor/PaginationInterceptor.java +++ b/mypages/src/main/java/io/leego/mypages/interceptor/PaginationInterceptor.java @@ -61,17 +61,9 @@ public class PaginationInterceptor implements Interceptor { private final ConcurrentMap unrefinedParamMap = new ConcurrentHashMap<>(64); public PaginationInterceptor(PaginationSettings settings) { - if (settings == null || (settings.getDialect() == null && settings.getSqlDialect() == null)) { - throw new IllegalArgumentException("Dialect is not configured."); - } - // Whether to obtain values from parameter. - settings.setObtainValuesFromFields( - (settings.getPageFieldName() != null && settings.getSizeFieldName() != null) - || (settings.getOffsetFieldName() != null && settings.getRowsFieldName() != null)); + settings.initialize(); this.settings = settings; - this.dialect = settings.getDialect() != null - ? settings.getDialect() - : settings.getSqlDialect().newDialect(); + this.dialect = settings.getDialect(); } @Override diff --git a/mypages/src/main/java/io/leego/mypages/interceptor/PaginationSettings.java b/mypages/src/main/java/io/leego/mypages/interceptor/PaginationSettings.java index 8a4bd3a..7c33ea8 100644 --- a/mypages/src/main/java/io/leego/mypages/interceptor/PaginationSettings.java +++ b/mypages/src/main/java/io/leego/mypages/interceptor/PaginationSettings.java @@ -209,6 +209,17 @@ public void setMaxSize(int maxSize) { this.maxSize = maxSize; } + public void initialize() { + if (this.dialect == null && this.sqlDialect == null) { + throw new NullPointerException("Dialect is not configured."); + } + this.obtainValuesFromFields = (this.pageFieldName != null && this.sizeFieldName != null) + || (this.offsetFieldName != null && this.rowsFieldName != null); + if (this.dialect == null) { + this.dialect = this.sqlDialect.newDialect(); + } + } + public static Builder builder() { return new Builder(); }