diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java index 657de9a38..92f59a1ad 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java @@ -117,7 +117,9 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation Select select = QueryBuilder.select().countAll().from(entity.getTableName().toCql()); appendIdCriteria(select.where(), entity, id); - return count(select.getQueryString()) != 0; + Long count = queryForObject(select, Long.class); + + return count != 0; } @Override diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTests.java index 2887374e9..79095c90d 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTests.java @@ -15,12 +15,6 @@ */ package org.springframework.data.cassandra.test.integration.repository; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; - import java.util.Arrays; import java.util.List; @@ -29,6 +23,14 @@ import org.springframework.data.cassandra.core.CassandraOperations; import com.google.common.collect.Lists; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; + +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + /** * Tests for {@link UserRepository}. * @@ -141,6 +143,18 @@ public class UserRepositoryIntegrationTests { assertThat(result, not(hasItem(tom))); } + public void exists() { + + String id = "tom"; + + assertTrue(repository.exists(id)); + + repository.delete(id); + + assertTrue(!repository.exists(id)); + + } + private static void assertEquals(User user1, User user2) { Assert.assertEquals(user1.getUsername(), user2.getUsername()); Assert.assertEquals(user1.getFirstName(), user2.getFirstName()); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTestsDelegator.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTestsDelegator.java index 2d75e5d16..dd6e0c1ab 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTestsDelegator.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/UserRepositoryIntegrationTestsDelegator.java @@ -75,4 +75,9 @@ public abstract class UserRepositoryIntegrationTestsDelegator extends public void deletesUserByIdCorrectly() { tests.deletesUserByIdCorrectly(); } + + @Test + public void exists() { + tests.exists(); + } }