From 7c6632f77c26c67006ff408f11bfb356e0af6ce8 Mon Sep 17 00:00:00 2001 From: mhyeon-lee Date: Mon, 4 May 2020 04:36:48 +0900 Subject: [PATCH 1/2] [DATAJDBC-531] Skip COUNT Query If Page Query result totalPage is 1. --- .../data/jdbc/core/JdbcAggregateTemplate.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java index 396515a170..080160ccea 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java @@ -24,7 +24,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jdbc.core.convert.DataAccessStrategy; @@ -39,6 +38,7 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.relational.core.mapping.RelationalPersistentEntity; import org.springframework.data.relational.core.mapping.event.*; +import org.springframework.data.repository.support.PageableExecutionUtils; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -50,6 +50,7 @@ * @author Thomas Lang * @author Christoph Strobl * @author Milan Milanov + * @author Myeonghyeon Lee */ public class JdbcAggregateTemplate implements JdbcAggregateOperations { @@ -248,10 +249,9 @@ public Page findAll(Class domainType, Pageable pageable) { Assert.notNull(domainType, "Domain type must not be null!"); Iterable items = triggerAfterLoad(accessStrategy.findAll(domainType, pageable)); - long totalCount = accessStrategy.count(domainType); + List content = StreamSupport.stream(items.spliterator(), false).collect(Collectors.toList()); - return new PageImpl<>(StreamSupport.stream(items.spliterator(), false).collect(Collectors.toList()), pageable, - totalCount); + return PageableExecutionUtils.getPage(content, pageable, () -> accessStrategy.count(domainType)); } /* From 2511b7ddb02b75fb4ecebbd009179cb264b1e43a Mon Sep 17 00:00:00 2001 From: mhyeon-lee Date: Thu, 29 Oct 2020 01:07:15 +0900 Subject: [PATCH 2/2] [DATAJDBC-531] Re import PageableExecutionUtils --- .../springframework/data/jdbc/core/JdbcAggregateTemplate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java index 080160ccea..2826332979 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java @@ -38,7 +38,7 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.relational.core.mapping.RelationalPersistentEntity; import org.springframework.data.relational.core.mapping.event.*; -import org.springframework.data.repository.support.PageableExecutionUtils; +import org.springframework.data.support.PageableExecutionUtils; import org.springframework.lang.Nullable; import org.springframework.util.Assert;