diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java index 8f7425ce5..0ca706ede 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java @@ -487,8 +487,13 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { } public List find(final Query query, Class entityClass, String collectionName) { - CursorPreparer cursorPreparer = query == null ? null : new QueryCursorPreparer(query); - return doFind(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, cursorPreparer); + + if (query == null) { + return findAll(entityClass, collectionName); + } + + return doFind(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, + new QueryCursorPreparer(query)); } public T findById(Object id, Class entityClass) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java index 244d711d1..54275e818 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java @@ -1445,6 +1445,16 @@ public class MongoTemplateTests { assertThat(person.version, is(0)); } + /** + * @see DATAMONGO-568 + */ + @Test + public void queryCantBeNull() { + + List result = template.findAll(PersonWithIdPropertyOfTypeObjectId.class); + assertThat(template.find(null, PersonWithIdPropertyOfTypeObjectId.class), is(result)); + } + static class MyId { String first;