From f61b0d6fad35cd6be7e2e143acae0d36e48c8a59 Mon Sep 17 00:00:00 2001 From: Zhongning Fan Date: Wed, 11 Apr 2018 22:10:11 +0800 Subject: [PATCH] =?UTF-8?q?DATAREDIS-623=20-=20Fix=20RedisQueryEngine.coun?= =?UTF-8?q?t(=E2=80=A6)=20with=20proper=20SINTER/SUNION=20usage.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of RedisQueryEngine#count(RedisOperationChain, Serializable) fix using multiple indexed keys. Related ticket: DATAREDIS-605. Original pull request: #330. --- pom.xml | 28 +++++++++---------- .../data/redis/core/RedisQueryEngine.java | 15 ++++++---- .../RedisRepositoryIntegrationTestBase.java | 18 ++++++++++++ 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 768f3d656..aef3da61b 100644 --- a/pom.xml +++ b/pom.xml @@ -31,26 +31,26 @@ - + org.apache.commons commons-pool2 ${pool} - + com.google.guava guava ${guava} - + - + org.springframework.data spring-data-keyvalue @@ -78,35 +78,35 @@ - + redis.clients jedis ${jedis} true - + org.jredis jredis-core-api ${jredis} true - + org.jredis jredis-core-ri ${jredis} true - + com.github.spullara.redis client ${srp} true - + biz.paluch.redis lettuce @@ -219,7 +219,7 @@ - + org.apache.maven.plugins maven-surefire-plugin @@ -240,12 +240,12 @@ org.apache.maven.plugins maven-assembly-plugin - + org.codehaus.mojo wagon-maven-plugin - + org.asciidoctor asciidoctor-maven-plugin @@ -259,13 +259,13 @@ release - + org.jfrog.buildinfo artifactory-maven-plugin false - + diff --git a/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java b/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java index 3e159f6ac..34eabcfa0 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java +++ b/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java @@ -175,14 +175,17 @@ class RedisQueryEngine extends QueryEngine page1 = repo.findByFirstnameAndLastname("sansa", "stark", new PageRequest(0, 2)); + + assertThat(page1.getNumberOfElements(), is(1)); + assertThat(page1.getContent(), hasSize(1)); + assertThat(page1.getTotalElements(), is(1L)); + } + public static interface PersonRepository extends PagingAndSortingRepository { List findByFirstname(String firstname); @@ -355,6 +371,8 @@ public abstract class RedisRepositoryIntegrationTestBase { List findByFirstnameAndLastname(String firstname, String lastname); + Page findByFirstnameAndLastname(String firstname, String lastname, Pageable page); + List findByFirstnameOrLastname(String firstname, String lastname); List findFirstBy();