diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java index 6bdb4ced4..00c5c9128 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java @@ -228,7 +228,7 @@ class MongoQueryCreator extends AbstractQueryCreator { case SIMPLE_PROPERTY: return criteria.is(parameters.nextConverted(property)); case NEGATING_SIMPLE_PROPERTY: - return criteria.not().is(parameters.nextConverted(property)); + return criteria.ne(parameters.nextConverted(property)); } throw new IllegalArgumentException("Unsupported keyword!"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java index 7bc53f685..28f643789 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java @@ -495,4 +495,15 @@ public abstract class AbstractPersonRepositoryIntegrationTests { List result = repository.findByCreatedAtLessThanManually(boyd.createdAt); assertThat(result.isEmpty(), is(false)); } -} \ No newline at end of file + + /** + * @see DATAMONGO-472 + */ + @Test + public void findsPeopleUsingNotPredicate() { + + List result = repository.findByLastnameNot("Matthews"); + assertThat(result, not(hasItem(dave))); + assertThat(result, hasSize(5)); + } +} diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java index 66667ca16..e2af969b7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java @@ -183,4 +183,11 @@ public interface PersonRepository extends MongoRepository, Query */ List findByCreatedAtAfter(Date date); + /** + * @see DATAMONGO-472 + * @param lastname + * @return + */ + List findByLastnameNot(String lastname); + }