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..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 @@ -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.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)); } /*