diff --git a/pom.xml b/pom.xml
index 92d7970b10..2f7678529f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-jpa
- 2.3.0.BUILD-SNAPSHOT
+ 2.3.0.DATAJPA-1635-SNAPSHOT
Spring Data JPA
Spring Data module for JPA repositories.
diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java
index adbdd6d107..53e4054aca 100644
--- a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java
+++ b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java
@@ -180,8 +180,8 @@ protected Object doExecute(final AbstractJpaQuery repositoryQuery, JpaParameters
private long count(AbstractJpaQuery repositoryQuery, JpaParametersParameterAccessor accessor) {
- List> totals = repositoryQuery.createCountQuery(accessor).getResultList();
- return (totals.size() == 1 ? CONVERSION_SERVICE.convert(totals.get(0), Long.class) : totals.size());
+ return CONVERSION_SERVICE.convert(repositoryQuery.createCountQuery(accessor).getSingleResult(), Long.class);
+
}
}
diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java
index 4ba8692d30..edb9c96438 100644
--- a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java
+++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java
@@ -33,7 +33,6 @@
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
-
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.query.JpaQueryExecution.ModifyingExecution;
@@ -147,14 +146,14 @@ public void pagedExecutionRetrievesObjectsForPageableOutOfRange() throws Excepti
JpaParameters parameters = new JpaParameters(getClass().getMethod("sampleMethod", Pageable.class));
when(jpaQuery.createCountQuery(Mockito.any())).thenReturn(countQuery);
when(jpaQuery.createQuery(Mockito.any())).thenReturn(query);
- when(countQuery.getResultList()).thenReturn(Arrays.asList(20L));
+ when(countQuery.getSingleResult()).thenReturn(20L);
PagedExecution execution = new PagedExecution();
execution.doExecute(jpaQuery,
new JpaParametersParameterAccessor(parameters, new Object[] { PageRequest.of(2, 10) }));
verify(query).getResultList();
- verify(countQuery).getResultList();
+ verify(countQuery).getSingleResult();
}
@Test // DATAJPA-477, DATAJPA-912
@@ -207,8 +206,8 @@ public void pagedExecutionShouldUseRequestCountFromResultWithOffsetAndResultsHit
JpaParameters parameters = new JpaParameters(getClass().getMethod("sampleMethod", Pageable.class));
when(jpaQuery.createQuery(Mockito.any())).thenReturn(query);
when(query.getResultList()).thenReturn(Collections.emptyList());
- when(jpaQuery.createCountQuery(Mockito.any())).thenReturn(query);
- when(countQuery.getResultList()).thenReturn(Arrays.asList(20L));
+ when(jpaQuery.createCountQuery(Mockito.any())).thenReturn(countQuery);
+ when(countQuery.getSingleResult()).thenReturn(20L);
PagedExecution execution = new PagedExecution();
execution.doExecute(jpaQuery,
@@ -224,8 +223,8 @@ public void pagedExecutionShouldUseRequestCountFromResultWithOffsetAndResultsHit
JpaParameters parameters = new JpaParameters(getClass().getMethod("sampleMethod", Pageable.class));
when(jpaQuery.createQuery(Mockito.any())).thenReturn(query);
when(query.getResultList()).thenReturn(Arrays.asList(new Object(), new Object(), new Object(), new Object()));
- when(jpaQuery.createCountQuery(Mockito.any())).thenReturn(query);
- when(countQuery.getResultList()).thenReturn(Arrays.asList(20L));
+ when(jpaQuery.createCountQuery(Mockito.any())).thenReturn(countQuery);
+ when(countQuery.getSingleResult()).thenReturn(20L);
PagedExecution execution = new PagedExecution();
execution.doExecute(jpaQuery,