From f581677bf2b175076e45b60f4147a01cbce5304e Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 16 Jun 2017 11:35:09 +0200 Subject: [PATCH] DATAMONGO-1718 - Polishing. Add test and hand over Object.class as placeholder for required domain type. Original Pull Request: #469 --- .../data/mongodb/core/MongoTemplate.java | 2 +- .../data/mongodb/core/MongoTemplateTests.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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 32ad8a732..b85d1f814 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 @@ -1515,7 +1515,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { */ @Override public List findAllAndRemove(Query query, String collectionName) { - return findAllAndRemove(query, null, collectionName); + return (List) findAllAndRemove(query, Object.class, collectionName); } /* 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 08bf971c6..f7ed5755a 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 @@ -3210,6 +3210,25 @@ public class MongoTemplateTests { assertThat(loaded.getValue(), instanceOf(decimal128Type)); } + @Test // DATAMONGO-1718 + public void findAndRemoveAllWithoutExplicitDomainTypeShouldRemoveAndReturnEntitiesCorrectly() { + + Sample jon = new Sample("1", "jon snow"); + Sample bran = new Sample("2", "bran stark"); + Sample rickon = new Sample("3", "rickon stark"); + + template.save(jon); + template.save(bran); + template.save(rickon); + + List result = template.findAllAndRemove(query(where("field").regex(".*stark$")), + template.determineCollectionName(Sample.class)); + + assertThat(result, hasSize(2)); + assertThat(result, containsInAnyOrder(bran, rickon)); + assertThat(template.count(new BasicQuery("{}"), template.determineCollectionName(Sample.class)), is(equalTo(1L))); + } + static class TypeWithNumbers { @Id String id;