DATAMONGO-1718 - Polishing.

Add test and hand over Object.class as placeholder for required domain type.

Original Pull Request: #469
This commit is contained in:
Christoph Strobl
2017-06-16 11:35:09 +02:00
parent a2a172e559
commit f581677bf2
2 changed files with 20 additions and 1 deletions

View File

@@ -1515,7 +1515,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware {
*/
@Override
public <T> List<T> findAllAndRemove(Query query, String collectionName) {
return findAllAndRemove(query, null, collectionName);
return (List<T>) findAllAndRemove(query, Object.class, collectionName);
}
/*

View File

@@ -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<Sample> 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;